cheatah
Struct

space::irbem::OpqPositionFold

cheatah-space v0.1.0-alpha — Biome Standard 0.6.5-alpha

The batch's position caveat, accumulated one point at a time — the same fold ext_t89.hpp makes, for the same reason: one status for N points can only be the worst of them, and finding it must not cost a second pass over 100 MB of positions.

OP-77's envelope is a radius band, so the smallest and largest r^2 decide the batch and two check_position calls per CALL reproduce exactly what N of them would have said.

Unit testIrbemOpq.BatchReportsTheSameEnvelopeTheScalarLaneDoes

Functions

fn void add(const Position< Frame::GSM > &p) #

Fold one position in.

Parameters
p

the position, GSM, in Earth radii.

Complexity

O(1) — one fused radius, two comparisons, no sqrt.

Allocation

none.

Unit testIrbemOpq.BatchReportsTheSameEnvelopeTheScalarLaneDoes
fn Status verdict() const #

What the batch's positions say about the model's envelope.

Returns

Status::DomainError when any point is not finite or is inside the Earth, Status::OutOfValidityRange when any point is beyond 15 R_E, otherwise Status::Ok.

Complexity

O(1) — two square roots and two envelope lookups for the whole batch.

Allocation

none.

Unit testIrbemOpq.BatchReportsTheSameEnvelopeTheScalarLaneDoes

Constants & variables

var double r2_lo #

The smallest r^2 seen, R_E^2; +inf until the first point.

var double r2_hi #

The largest r^2 seen, R_E^2; zero until the first point.

var bool finite #

False once any point has had a non-finite coordinate.

Tracked separately because a NaN radius compares false against everything and would otherwise slip through both extremes.