Skip to main content

solve_spp_batch_parallel

Function solve_spp_batch_parallel 

Source
pub fn solve_spp_batch_parallel(
    eph: &(dyn EphemerisSource + Sync),
    epochs: &[SolveInputs],
    with_geodetic: bool,
    policy: SolvePolicy,
) -> Vec<Result<ReceiverSolution, SolvePolicyError>>
Expand description

Solve a batch of independent SPP epochs against a shared ephemeris, fanning the independent per-epoch solves across a rayon thread pool.

Each epoch is solved by the same serial solve_with_policy kernel and the indexed parallel collect preserves input order, so element i is byte-for-byte identical to element i of solve_spp_batch_serial: the epochs share only the immutable eph/policy, there is no cross-epoch state and no reduction, and a single solve is unchanged. The work is embarrassingly parallel (epochs are independent), so throughput scales with cores while every value stays bit-exact. eph must be Sync to be shared across the pool.