|
| auto | lower (const double value) -> double |
| | Enclose a nearest-rounded result on its lower side.
|
| auto | upper (const double value) -> double |
| | Enclose a nearest-rounded result on its upper side.
|
| auto | finite_nonnegative (const double value) -> bool |
| | Test whether a scalar is finite and nonnegative.
|
| auto | magnitude_floor (const Value evaluated) -> double |
| | Bound an observation's absolute magnitude from below; the bound may be negative.
|
| auto | exact_zero (const Value evaluated) -> bool |
| | Recognize a certified zero, not merely a zero-valued observation.
|
| auto | sign (const Value evaluated) -> int32_t |
| | Return a robust sign, or zero when the allowance includes zero.
|
| auto | shifted (const Value evaluated, const double offset, const double first_derivative) -> Value |
| | Adjust a provider's error allowance when it evaluates at a different abscissa.
|
template<typename Provider>
requires std::invocable<const Provider&, double> and std::same_as<std::invoke_result_t<const Provider&, double>, Value> |
| auto | sample (const Provider &provider, const double jde_tt, Budget &budget) -> Sample |
| | Charge an evaluation even if the provider fails.
|
| auto | derivative_floor (const Sample left, const Sample right, const Bounds bounds) -> double |
| | Bound |f'| from below using the noisy secant and the curvature bound.
|
| auto | valid_time_span (const double start_jde_tt, const double end_jde_tt) -> bool |
| | Test finite, strictly ordered TT endpoints whose difference is finite.
|
| auto | validate_cell (const double start_jde_tt, const double end_jde_tt, const Bounds bounds) -> void |
| | Require a finite positive time span and finite nonnegative derivative bounds.
|
| auto | endpoint_exclusion (const Cell &cell, const Bounds bounds) -> bool |
| | Test sufficient endpoint conditions for a cell to contain no root.
|
| auto | classify_cell (const Cell &cell, const Bounds bounds) -> CellDecision |
| | Certify exclusion or uniqueness; otherwise request subdivision.
|
| auto | append_candidate (const Cell &cell, const Isolation isolation, Budget &budget, std::vector< Candidate > &candidates) -> void |
| | Consume one candidate slot before retaining a bracket.
|
template<typename Provider>
requires std::invocable<const Provider&, double> and std::same_as<std::invoke_result_t<const Provider&, double>, Value> |
| auto | visit_cell (const Provider &provider, const Cell &cell, const Bounds bounds, Budget &budget, const uint32_t depth, std::vector< Candidate > &candidates) -> void |
| | Traverse a sampled cell, retaining unresolved brackets when subdivision stops.
|
template<typename Provider>
requires std::invocable<const Provider&, double> and std::same_as<std::invoke_result_t<const Provider&, double>, Value> |
| auto | isolate_cell (const Provider &provider, const double start_jde_tt, const double end_jde_tt, const Bounds bounds, Budget &budget, const EndpointOwnership ownership=EndpointOwnership::LEFT, const uint32_t maximum_depth=32) -> std::vector< Candidate > |
| | Isolate a C2 scalar on a fixed canonical cell, not a query-clipped cell.
|
| auto | project_longitude_difference (const LongitudeValue first, const LongitudeValue second) -> Value |
| | Observe first minus second modulo 360 degrees, including subtraction roundoff.
|
| auto | longitude_residual (const LongitudeValue observed, const toolbox::AngleDeg target) -> Value |
| | Return a scalar level residual only when its observation cannot straddle the antipodal cut.
|
| auto | curvature_sign (const Sample left, const Sample middle, const Sample right, const double third_derivative) -> int32_t |
| | Certify one sign of f'' throughout three observations' span; zero means unresolved.
|
| auto | contact_direction (const LongitudeValue at_station, const toolbox::AngleDeg target, const Value before, const Value after, const int32_t curvature) -> ContactDirection |
| | Classify an exact numerical contact from certified observations on both sides.
|
template<typename Provider>
requires std::invocable<const Provider&, double> and std::same_as<std::invoke_result_t<const Provider&, double>, LongitudeValue> |
| auto | isolate_longitude_cell (const Provider &provider, const toolbox::AngleDeg target, const Interval cell, const Bounds bounds, Budget &budget, const EndpointOwnership ownership=EndpointOwnership::LEFT) -> std::vector< Candidate > |
| | Isolate longitude-level roots after excluding distant cells or certifying a continuous scalar lift.
|
| auto | resolves_sample (const double minimum_slope, const Sample observed, const double time_resolution) -> bool |
| | Decide whether an observation ends refinement.
|
template<typename Provider>
requires std::invocable<const Provider&, double> and std::same_as<std::invoke_result_t<const Provider&, double>, Value> |
| auto | refine_bracket (const Provider &provider, const Candidate &candidate, const double minimum_slope, Budget &budget, const double time_resolution, const uint32_t maximum_iterations) -> Root |
| | Bisect a unique-root bracket with robust signs and bounded work.
|
template<typename Provider>
requires std::invocable<const Provider&, double> and std::same_as<std::invoke_result_t<const Provider&, double>, Value> |
| auto | refine (const Provider &provider, const Candidate &candidate, const Bounds bounds, Budget &budget, const double time_resolution=0.0, const uint32_t maximum_iterations=96) -> Root |
| | Refine a certified unique root to the requested time resolution or adjacent doubles.
|
| auto | grid_time (const Grid grid, const uint32_t index, const uint32_t cell_count) -> double |
| | Return a stored grid boundary, with the first and final boundaries kept exact.
|
| auto | grid_cell_count (const Grid grid) -> uint32_t |
| | Validate distinct representable cell boundaries and a bounded index range.
|
| auto | containing_cell (const Grid grid, const uint32_t cell_count, const double jde_tt) -> uint32_t |
| | Locate the canonical cell containing an admitted time, correcting quotient rounding.
|
template<typename Visitor>
requires std::invocable<const Visitor&, Interval> |
| auto | visit_query_cells (const Grid grid, const Interval query, const Visitor &visitor) -> void |
| | Visit whole canonical cells touching a query, including its preceding cell for rounded roots.
|
| auto | reported_time (const double jde_tt, const double quantum_tt_days) -> double |
| | Round a reported TT time to a binary lattice; zero quantum preserves the refined double.
|
| auto | validate_reporting_grid (const Grid grid, const double quantum_tt_days) -> void |
| | Require a power-of-two reporting lattice that fixes every canonical cell boundary.
|
template<typename Provider>
requires std::invocable<const Provider&, double> and std::same_as<std::invoke_result_t<const Provider&, double>, Value> |
| auto | append_interval_roots (const Provider &provider, const std::span< const Candidate > candidates, const Interval query, const Bounds bounds, Budget &budget, const double time_resolution, std::vector< Root > &roots, const double report_quantum_tt_days=0.0) -> void |
| | Append only query-owned roots; intersecting unresolved regions and aliased root times fail.
|
| auto | contact_window (const Grid grid, const uint32_t index, const uint32_t cell_count) -> Interval |
| | Return the fixed neighbor window of a canonical cell, clipped to the grid domain.
|
template<typename LongitudeProvider, typename RateProvider, typename WindowLongitudeProvider, typename WindowRateProvider>
requires std::invocable<const LongitudeProvider&, double> and std::same_as<std::invoke_result_t<const LongitudeProvider&, double>, LongitudeValue> and std::invocable<const RateProvider&, double> and std::same_as<std::invoke_result_t<const RateProvider&, double>, Value> and std::invocable<const WindowLongitudeProvider&, double> and std::same_as<std::invoke_result_t<const WindowLongitudeProvider&, double>, LongitudeValue> and std::invocable<const WindowRateProvider&, double> and std::same_as<std::invoke_result_t<const WindowRateProvider&, double>, Value> |
| auto | certify_contact (const LongitudeProvider &longitude, const RateProvider &rate, const WindowLongitudeProvider &window_longitude, const WindowRateProvider &window_rate, const Candidate &candidate, const Interval cell, const Interval window, const toolbox::AngleDeg target, const TrajectoryBounds bounds, const TrajectoryBounds window_bounds, Budget &budget, const double time_resolution, const double report_quantum_tt_days) -> StationContact |
| | Certify one exact-level numerical contact, trying its cell before its fixed neighbor window.
|
template<typename LongitudeProvider, typename RateProvider, typename WindowLongitudeProvider, typename WindowRateProvider>
requires std::invocable<const LongitudeProvider&, double> and std::same_as<std::invoke_result_t<const LongitudeProvider&, double>, LongitudeValue> and std::invocable<const RateProvider&, double> and std::same_as<std::invoke_result_t<const RateProvider&, double>, Value> and std::invocable<const WindowLongitudeProvider&, double> and std::same_as<std::invoke_result_t<const WindowLongitudeProvider&, double>, LongitudeValue> and std::invocable<const WindowRateProvider&, double> and std::same_as<std::invoke_result_t<const WindowRateProvider&, double>, Value> |
| auto | cell_contacts (const LongitudeProvider &longitude, const RateProvider &rate, const WindowLongitudeProvider &window_longitude, const WindowRateProvider &window_rate, const toolbox::AngleDeg target, const Interval cell, const Interval window, const TrajectoryBounds bounds, const TrajectoryBounds window_bounds, Budget &budget, const double time_resolution, const double report_quantum_tt_days, const Interval query) -> std::vector< NumericalContact > |
| | Verify isolated stations in a fixed grid cell using observations on both sides.
|
template<typename LongitudeProvider>
requires std::invocable<const LongitudeProvider&, double> and std::same_as<std::invoke_result_t<const LongitudeProvider&, double>, LongitudeValue> |
| auto | cell_crossings (const LongitudeProvider &longitude, const toolbox::AngleDeg target, const Interval cell, const std::span< const Interval > exclusions, const Interval query, const Bounds bounds, Budget &budget, const double time_resolution, const double report_quantum_tt_days) -> std::vector< Root > |
| | Scan one visited cell for crossings outside its sorted, disjoint contact exclusions.
|
template<typename Contacts, typename Crossings>
requires std::invocable<const Contacts&, Interval, Interval> and std::same_as<std::invoke_result_t<const Contacts&, Interval, Interval>, std::vector<NumericalContact>> and std::invocable<const Crossings&, Interval, std::span<const Interval>> and std::same_as<std::invoke_result_t<const Crossings&, Interval, std::span<const Interval>>, std::vector<Root>> |
| auto | contact_traversal (const Grid grid, const Interval query, const Contacts &contacts, const Crossings &crossings) -> std::vector< LongitudeRoot > |
| | Find crossings and exact contacts, reporting each contact from the cell containing its reported time.
|