Skip to main content

sidereon_core/spp/
config.rs

1//! SPP solver policy constants.
2
3pub use crate::constants::SPP_TRANSMIT_TIME_ITERATIONS as TRANSMIT_TIME_ITERATIONS;
4
5const PI: f64 = std::f64::consts::PI;
6
7/// Elevation mask in radians (10 degrees); a satellite is excluded iff its
8/// elevation is strictly below this value.
9pub const ELEVATION_MASK_RAD: f64 = 10.0 * PI / 180.0;
10
11/// Base measurement standard deviation (m) for the elevation weight model.
12pub const SIGMA0_M: f64 = 1.0;
13
14/// Default Huber tuning constant for the opt-in robust reweighting path.
15pub use crate::astro::math::robust::HUBER_K as DEFAULT_HUBER_K;
16
17/// Default robust scale floor (m): the smallest MAD-derived scale allowed, so a
18/// near-perfect fit cannot blow up the scaled residuals and down-weight every
19/// satellite. Sized to the metre-class code noise of cheap single-frequency
20/// receivers.
21pub const DEFAULT_ROBUST_SCALE_FLOOR_M: f64 = 1.0;
22
23/// Default maximum outer IRLS reweighting iterations (the warm-started static
24/// solve at iteration 0 plus reweighted resolves up to this many total).
25pub const DEFAULT_ROBUST_MAX_OUTER: usize = 5;
26
27/// Default outer-loop position step tolerance (m): the outer IRLS loop stops
28/// when the L2 norm of the position change between successive reweighted solves
29/// drops below this.
30pub const DEFAULT_ROBUST_OUTER_TOL_M: f64 = 1e-4;