cheatah
Struct

space::irbem::ValidityEnvelope

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

Everything published about where one model may be believed: which drivers it reads and over what range, how far out in space it was fitted, and whether it needs coefficient files on disk.

Aggregate, trivially copyable, and about 300 bytes — it lives in .rodata and is reached by reference (envelope_of), never copied into a hot loop.

Unit testIrbemStatus.EnvelopeTableMatchesTheIrbemKextTable

Functions

fn const DriverBound * begin() const #

The meaningful part of bound_storage.

Returns

a pointer to the first bound; never null, and valid for bound_count entries.

Complexity

O(1).

Allocation

none.

Unit testIrbemStatus.EnvelopeTableMatchesTheIrbemKextTable
fn const DriverBound * end() const #

One past the meaningful part of bound_storage, so an envelope is range-for-able.

Returns

the end iterator.

Complexity

O(1).

Allocation

none.

Unit testIrbemStatus.EnvelopeTableMatchesTheIrbemKextTable
fn std::optional< DriverBound > bound_for(Driver d) const #

The bound this model publishes for d, if it reads d at all.

Parameters
d

the driver to look up.

Returns

the entry, or std::nullopt when the model does not read that driver.

Complexity

O(bound_count) — at most ten compares, over data in one cache line pair.

Allocation

none.

Unit testIrbemStatus.EnvelopeLookupFindsOnlyTheDriversAModelReads

Constants & variables

var std::string_view citation #

The source the ranges below are quoted from, so a reader can check them.

var std::array< DriverBound, max_model_bounds > bound_storage #

The drivers this model reads; only the first bound_count entries are meaningful.

var std::size_t bound_count #

How many entries of bound_storage are meaningful.

var double max_r_geo #

Largest geocentric radius, in Earth radii, the model was fitted out to; +infinity when the published sources state no radial limit.

var double min_x_gsm #

Smallest GSM x, in Earth radii, the model was fitted to; -infinity when none is published.

The Tsyganenko 2001 and later models state this instead of a radial limit, because their tail current sheet is what runs out.

var bool needs_coefficient_files #

Whether the model needs per-interval coefficient files provisioned on disk before it can be evaluated at all; see check_parameters.