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
radiusintegers of each rounded float ambiguity. - lambda_
ils_ search - Correct integer-least-squares via the LAMBDA method (RTKLIB
lambda()port).