Skip to main content

Module ils

Module ils 

Source
Expand description

Integer least squares - ambiguity-resolution kernels for precise / RTK positioning.

The bounded kernel preserves the historical public score/order contract: Gaussian elimination with partial pivoting (max-abs pivot, first-index tie break, <= PIVOT_EPSILON singular guard), Δᵀ Q⁻¹ Δ summation order (i-outer, j-inner, left-associated products), lattice enumeration, and {score, cycles} candidate ordering. The LAMBDA kernel is a faithful RTKLIB lambda() port. Crate-side tests pin the RTKLIB oracle fixture plus frozen output bits. All arithmetic is plain * / - / + (no FMA), per the crate’s reproducibility rule.

These kernels live in Rust because the bounded search, LAMBDA, and the partial-ambiguity subset search built on top of them are compute hot paths for multi-epoch RTK arcs.

Structs§

IlsResult
Outcome of a bounded ILS search.

Enums§

IlsError
Why a bounded ILS search could not produce a result. Mapped by the NIF onto the reference Elixir error tuples (:singular_geometry, {:no_integer_candidates, n}, {:too_many_integer_candidates, n, limit}).

Functions§

bounded_ils_search
Bounded integer least squares over the lattice within radius integers of each rounded float ambiguity.
lambda_ils_search
Correct integer-least-squares via the LAMBDA method (RTKLIB lambda() port).