apsis-rs/crates
ApsisRS contributors a3028b2029 fix: reject an unordered sample sequence in the access search
The search binary searches the sample list to interpolate between the two
samples that straddle a crossing, and a binary search over an unordered
list returns a wrong index instead of failing. Only the first and last
times were checked, so a sequence whose ends were in order but whose
middle was not refined each crossing against the wrong pair of positions
and reported a pass that never happened. On a circular ground track,
shuffling two samples changed the result from three passes to two and
still returned Ok.

The whole sequence is now checked, with a new UnorderedSamples error kind
that says which pair is out of order. The test covers the middle-of-
sequence case that the end check missed.

Two comments also described something other than what the code does, and
two Option-returning accessors did not say what makes them None:

- GravityModel::x2o3 is the constant 2/3, used as an exponent in the
  mean motion and drag corrections, not 2 * xke^2 as its comment claimed;
  the sgp4 reference implementation uses the same constant the same way.
- WalkerPattern::plane_spacing and phase_offset returned None without
  saying so, which is the case a caller has to handle.

Both READMEs claimed twelve expect sites where there are thirteen, because
apsis-math/src/parallel.rs added one and the count was not carried over.
2026-10-02 00:03:22 +08:00
..
apsis-rs docs: register the two scale benchmarks and correct the stale note 2026-09-30 18:23:37 +08:00
foundation math, access: correct the parallel notes and a test's geometry 2026-09-30 18:40:49 +08:00
network fix: reject an unordered sample sequence in the access search 2026-10-02 00:03:22 +08:00
ops fix: reject an unordered sample sequence in the access search 2026-10-02 00:03:22 +08:00
orbit fix: reject an unordered sample sequence in the access search 2026-10-02 00:03:22 +08:00
physics docs: fix the broken intra doc links and check them in CI 2026-09-26 23:37:48 +08:00
rf docs: fix the broken intra doc links and check them in CI 2026-09-26 23:37:48 +08:00
sim docs: fix the broken intra doc links and check them in CI 2026-09-26 23:37:48 +08:00