Skip to main content

Crate empyrean_sys

Crate empyrean_sys 

Source
Expand description

Raw FFI bindings to libempyrean, the C shared library for empyrean’s astrodynamics engine.

Prefer the safe wrapper crate empyrean unless you need direct access to the C ABI.

§How libempyrean is loaded

The library is opened at run time with libloading — there is no link-time native dependency and no install_name_tool / patchelf / rpath / LD_LIBRARY_PATH setup. Its path is resolved on first use, in order:

  1. EMPYREAN_LIB — an explicit path to the library, passed straight to dlopen (override / offline use / a locally built engine). A bare name defers to the OS loader search; pass a full path for an exact file.
  2. A libempyrean.{dylib,so} sitting next to the currently loaded module — the .so/.dylib/executable that statically links this crate — located via dladdr. This makes prebuilt, relocatable artifacts self-contained: a Python wheel can bundle the engine beside its extension and it is found with no build-machine path baked in.
  3. The absolute path recorded at build time (LIB_PATH): a sibling ../target/release build, an EMPYREAN_LIB_DIR override, or a version-matched, checksum-pinned prebuilt downloaded (in pure Rust — no curl/tar) into ~/.cache/empyrean. This covers cargo add empyrean, where the build script runs on the consumer’s own machine.

The bindings are pre-generated and committed, so building needs no C header and no libclang / bindgen. Callers use the free empyrean_* functions exactly as with a statically linked library; each delegates to the loaded EmpyreanLib.

Structs§

Context
CoordinateState
Flat C-ABI compatible coordinate state.
EmpyreanAcceptabilityReport
Acceptability sub-checks computed post-DC.
EmpyreanAcceptabilityThresholds
Acceptability thresholds for the post-DC fit-quality checks (mirrors [scott::od::AcceptabilityThresholds]). Sentinel: 0.0 → upstream default.
EmpyreanAdvancedIntegratorConfig
Integrator tuning. Mirrors [villeneuve::propagation::AdvancedIntegratorConfig]. The default integrator backend is Gauss-Radau 15 (GR15), derived solely from the published papers; epsilon is interpreted as the relative b₆ truncation tolerance.
EmpyreanAutoEscalationPolicy
Auto-escalation policy for [SolveForParams::Auto] (mirrors [scott::od::AutoEscalationPolicy]). Sentinel: 0 / 0.0 → upstream default.
EmpyreanBPlane
One B-plane breakdown emitted by empyrean_compute_b_planes. Mirrors [empyrean_core::impact::BPlaneData] flattened to primitives. Nullable f64 fields use NaN sentinels.
EmpyreanBPlanesResult
EmpyreanBandStat
Per-band photometric statistics (mirrors scott’s BandStat). Owned heap entry, freed by empyrean_od_result_free.
EmpyreanBuiltSystem
Opaque handle wrapping a pre-assembled force model plus the kernel-identity snapshot taken from the context at construction (so empyrean_builtsystem_describe is self-contained). Construct with empyrean_builtsystem_new; release with empyrean_builtsystem_free.
EmpyreanCovarianceMetrics
Covariance summary metrics (prior, posterior, or per-candidate cumulative).
EmpyreanDebiasingConfig
Catalog-bias-correction configuration. Mirrors scott’s Option<Arc<DebiasingTable>> field on ODConfig.
EmpyreanDiagnosticsConfig
Per-trajectory diagnostic outputs (sensitivity, nonlinearity, …). Mirrors [villeneuve::diagnostics::DiagnosticsConfig].
EmpyreanEphemerisConfig
Ephemeris-generation configuration.
EmpyreanEphemerisEntry
A single predicted ephemeris entry.
EmpyreanEphemerisResult
Result containing an array of ephemeris entries and, when an uncertainty method traced the STM, the observation-sensitivity chains.
EmpyreanEvaluateResult
Result of orbit evaluation (residuals without fitting).
EmpyreanEvent
A detected dynamical event from propagation.
EmpyreanEventConfig
Event-detection configuration. Mirrors [villeneuve::events::EventConfig] (less the enrichment sub-config, which carries internal nested data that doesn’t translate cleanly through C — it always uses upstream defaults).
EmpyreanGateRecord
One model-ladder gate decision (mirrors scott’s GateRecord). Owned heap entry, freed by empyrean_od_result_free.
EmpyreanIODConfig
IOD ranging tuning (mirrors the IOD section of [scott::od::ODConfig]).
EmpyreanImpactProbabilitiesResult
EmpyreanImpactProbability
One impact-probability record emitted by empyrean_compute_impact_probabilities. Mirrors [empyrean_core::impact::ImpactProbability] flattened to primitives; nullable fields use NaN sentinels (Option) or 0 / null (Option).
EmpyreanKernelRecord
One entry of the kernel-identity manifest captured by a handle.
EmpyreanLib
EmpyreanMixtureChain
Per-orbit AGM mixture decomposition retained by Auto / Mixture.
EmpyreanMixtureComponent
One Gaussian sub-component of an AGM mixture decomposition.
EmpyreanNonGravParams
A complete non-gravitational acceleration model, flattened for the C ABI.
EmpyreanODConfig
Orbit-determination configuration.
EmpyreanODPhotometryResult
Post-OD photometric solution (mirrors scott’s PhotometryResult). Present only when photometry was requested and ran (EmpyreanODResult::has_photometry). H carries honest σ via the covariance block.
EmpyreanODResult
Mirrors scott’s ODResult. Carries the fitted orbit, the 6×6 (or 9×9 when non-grav was solved) formal covariance, the per-observation result array, the summary, the structured acceptability report, and the per-station nuisance-bias array when fit_station_biases was active.
EmpyreanObservation
A single optical observation for orbit determination — full ADES schema.
EmpyreanObservationResult
Per-observation result from orbit determination or evaluation.
EmpyreanObservationSensitivity
One observation-sensitivity row — the partial derivatives of the sky-plane observable w.r.t. the input state, for a single (orbit, observer, epoch). One row per observation epoch within each (orbit_id, obs_code) chain. Owning struct: free the whole result with empyrean_ephemeris_result_free.
EmpyreanObservatoryConfig
Per-observatory assumptions: astrometric σ + observability filters.
EmpyreanObserver
A single observer state for the C API.
EmpyreanObserverResult
Result containing an array of observer states.
EmpyreanOrbit
An orbit with optional non-gravitational parameters, continuous-thrust arcs, and photometry.
EmpyreanOrbitBatch
A batch of orbits with their identifiers.
EmpyreanOriginPolicy
Origin-policy selector for the OD pipeline (mirrors [OriginPolicy]).
EmpyreanOriginSwitchingConfig
Origin-switching configuration for trajectory splitting at body Laplace spheres of influence (Amato/Baù/Bombardelli 2017 §6).
EmpyreanOutputEpoch
Output epoch specification (mirrors [OutputEpoch]).
EmpyreanPhotometryConfig
Post-OD photometric-fit request (mirrors scott’s PhotometryConfig). Enabled by EmpyreanODConfig::has_photometry; the fit runs after the orbit is solved and never touches the state (photometry has no astrometric partials). Zero-init reproduces scott’s defaults.
EmpyreanPlanCandidate
Per-candidate information-gain analysis.
EmpyreanPlanEphemerisPoint
One predicted sky-plane point of the plan’s optical ephemeris: the target’s predicted topocentric right ascension and declination (degrees, ICRF) at an optical candidate’s epoch (MJD, TDB).
EmpyreanPlanResult
Result of a plan evaluation. The caller allocates the struct; the orbit_id string and the candidates array (with their obs_code strings) are heap-allocated here and must be released with empyrean_plan_result_free.
EmpyreanPlannedObservation
A single planned (candidate) observation: an epoch plus either an optical or a radar measurement spec. Optical fields are read when kind == 0, radar fields when kind == 1; absent optional radar target properties use NaN (the link budget refuses, rather than silently defaults, a missing value).
EmpyreanPlanningConfig
Planning configuration: force model, integration tolerance, the per-observatory astrometric assumptions, and threading.
EmpyreanPropagatedState
A single propagated Cartesian state.
EmpyreanPropagationConfig
Propagation configuration.
EmpyreanPropagationResult
Propagation result containing states, events, and object identifiers.
EmpyreanRadarObservation
A single radar (delay or Doppler) observation for orbit determination — the ADES <radar> schema.
EmpyreanRejectionConfig
Outlier rejection configuration. Selects between two strategies via the kind discriminator:
EmpyreanResidualSummary
Aggregate residual statistics.
EmpyreanSRPParams
The fitted orbit’s absolute solar-radiation-pressure slot, flattened for the C ABI. Mirrors the SRP fields the input EmpyreanOrbit carries so a fitted orbit’s SRP force re-feeds off EmpyreanODResult::srp with no loss.
EmpyreanSessionDiff
Pairwise diagnostic returned by empyrean_session_diff.
EmpyreanSolveFor
Result of orbit determination (determine or refine).
EmpyreanSolvedCovariance
Full solved-parameter covariance at the ABI-frozen width EMPYREAN_SOLVE_WIDTH (mirrors scott’s SolvedCovariance tag-for-tag). The leading width × width block is meaningful; rows and columns beyond width are zero (RESERVED, not defaulted covariance). Consumers MUST read the slot tags to locate a parameter — the width alone is ambiguous (width 9 is Marsden OR a one-segment thrust). An absent tag carries EMPYREAN_SLOT_NONE.
EmpyreanState
A single body state for the C API.
EmpyreanStateResult
Result containing an array of body states.
EmpyreanStationBias
One per-station bias estimate from a Schur-eliminated nuisance fit.
EmpyreanStationRaDecConfig
Per-station RA/Dec bias-fit configuration (mirrors [scott::nuisance::BiasKind::StationRaDec]).
EmpyreanSystemDescription
A reproducibility summary of a handle’s frozen force model plus its captured kernel-identity manifest.
EmpyreanTaggedCovariance
Flattened, owned form of empyrean_core::propagation::TaggedCovariance (villeneuve’s provenance-tagged covariance). Self-describing: the 6×6 matrix together with the co-located nominal state, how the covariance was derived, its definiteness, its basis, the solved-for parameters, and the functional it describes — so a consumer can never read a second-order CA ellipsoid as a linear one.
EmpyreanTaggedCovarianceSeries
Owned series of EmpyreanTaggedCovariance, one entry per output epoch. Free with empyrean_tagged_covariance_series_free.
EmpyreanThrustArc
A single continuous-thrust arc, mirroring [empyrean_core::nongrav::ThrustArc] as a flat #[repr(C)] record.
EmpyreanUncertaintyMethod
Uncertainty-propagation method, mirroring [empyrean_core::propagation::UncertaintyMethod] as a flat C struct. Fields outside the active variant are ignored — set them to zero / NaN.
EmpyreanVersions
Per-crate version strings reported by the empyrean stack.
EmpyreanWeightingConfig
Weighting configuration. Mirrors [scott::weighting::WeightingConfig] structurally; extends it with an enabled toggle and a preset selector for the common case of “use the production preset” without constructing layers by hand.
EmpyreanWeightingLayer
One element of EmpyreanWeightingConfig::additional_layers. Tagged-union shape: the active fields depend on kind.
Session

Constants§

EMPYREAN_ABI_VERSION
EMPYREAN_BUILTSYSTEM_ALLOC
EMPYREAN_BUILTSYSTEM_DATA_MISMATCH
EMPYREAN_BUILTSYSTEM_INVALID_ARGUMENT
EMPYREAN_BUILTSYSTEM_KEY_MISMATCH_DIVISOR
EMPYREAN_BUILTSYSTEM_KEY_MISMATCH_FORCE_MODEL
EMPYREAN_BUILTSYSTEM_KEY_MISMATCH_FRAME
EMPYREAN_BUILTSYSTEM_NULL_POINTER
EMPYREAN_BUILTSYSTEM_OK
EMPYREAN_BUILTSYSTEM_PANIC
EMPYREAN_BUILTSYSTEM_PROPAGATION
EMPYREAN_BUILTSYSTEM_STALE
EMPYREAN_COVARIANCE_KIND_LINEAR
EMPYREAN_COVARIANCE_KIND_MIXTURE
EMPYREAN_COVARIANCE_KIND_MONTE_CARLO
EMPYREAN_COVARIANCE_KIND_SECOND_ORDER
EMPYREAN_COVARIANCE_KIND_SIGMA_POINT
EMPYREAN_COVARIANCE_KIND_THIRD_ORDER
EMPYREAN_COVARIANCE_QUALITY_INDEFINITE
EMPYREAN_COVARIANCE_QUALITY_POSITIVE_DEFINITE
EMPYREAN_COVARIANCE_QUALITY_REPAIRED
EMPYREAN_COVARIANCE_TRUST_ENCOUNTER_INTERVENES
EMPYREAN_COVARIANCE_TRUST_NOT_EVALUATED
EMPYREAN_COVARIANCE_TRUST_TRUSTED
EMPYREAN_COVARIANCE_TRUST_WEAKLY_DETERMINED_HIGH_N
EMPYREAN_DEBIASING_RESOLUTION_HIRES
EMPYREAN_DEBIASING_RESOLUTION_STANDARD
EMPYREAN_DEBIASING_TABLE_EFCC2020
EMPYREAN_INTEGRATOR_DOP853
EMPYREAN_INTEGRATOR_GR15
EMPYREAN_KERNEL_KIND_BPC
EMPYREAN_KERNEL_KIND_GRAVITY
EMPYREAN_KERNEL_KIND_OBSCODES
EMPYREAN_KERNEL_KIND_SPK
EMPYREAN_KERNEL_KIND_TPC
EMPYREAN_KERNEL_PROVENANCE_BUILT_IN
EMPYREAN_KERNEL_PROVENANCE_FILE
EMPYREAN_KERNEL_PROVENANCE_IN_MEMORY
EMPYREAN_ORIGIN_POLICY_AUTO
EMPYREAN_ORIGIN_POLICY_EXPLICIT
EMPYREAN_ORIGIN_SWITCHING_DEFAULT
EMPYREAN_ORIGIN_SWITCHING_OFF
EMPYREAN_ORIGIN_SWITCHING_ON
EMPYREAN_OUTPUT_EPOCH_EXPLICIT
EMPYREAN_OUTPUT_EPOCH_IOD_EPOCH
EMPYREAN_OUTPUT_EPOCH_LAST_OBSERVATION
EMPYREAN_OUTPUT_EPOCH_MID_ARC
EMPYREAN_PHASE_FUNCTION_HG
EMPYREAN_PHASE_FUNCTION_HG1G2
EMPYREAN_PHASE_FUNCTION_HG12
EMPYREAN_PHASE_FUNCTION_NONE
EMPYREAN_PHOTOMETRY_MODEL_AUTO
EMPYREAN_PHOTOMETRY_MODEL_HG
EMPYREAN_PHOTOMETRY_MODEL_HG1G2
EMPYREAN_PHOTOMETRY_MODEL_HG12
EMPYREAN_PHOTOMETRY_MODEL_HONLY
EMPYREAN_RADAR_KIND_DELAY
EMPYREAN_RADAR_KIND_DOPPLER
EMPYREAN_REJECTION_ACCEPTED
EMPYREAN_REJECTION_ADAPTIVE
EMPYREAN_REJECTION_CHI_SQUARED
EMPYREAN_REJECTION_CMC2003
EMPYREAN_REJECTION_COOKS_DISTANCE
EMPYREAN_REJECTION_KIND_ADAPTIVE
EMPYREAN_REJECTION_KIND_CMC2003
EMPYREAN_REJECTION_NOT_EVALUATED
EMPYREAN_REJECTION_OCCULTATION_UNSUPPORTED
EMPYREAN_REJECTION_OUTSIDE_ARC
EMPYREAN_REJECTION_RADAR_UNSUPPORTED
EMPYREAN_REJECTION_SIGMA_CLIP
EMPYREAN_REJECTION_UNSUPPORTED_OBSERVATORY
EMPYREAN_REPRESENTATION_CARTESIAN
EMPYREAN_REPRESENTATION_COMETARY
EMPYREAN_REPRESENTATION_KEPLERIAN
EMPYREAN_REPRESENTATION_SPHERICAL
EMPYREAN_SIGMA_POLICY_DEFAULT_ONLY
EMPYREAN_SIGMA_POLICY_FLOOR
EMPYREAN_SLOT_NONE
EMPYREAN_SOLVE_FOR_AUTO
EMPYREAN_SOLVE_FOR_EXPLICIT
EMPYREAN_SOLVE_FOR_STATE_AND_NONGRAV
EMPYREAN_SOLVE_FOR_STATE_ONLY
EMPYREAN_SOLVE_WIDTH
EMPYREAN_STEERING_LAW_CONSTANT_RTN
EMPYREAN_STEERING_LAW_INERTIAL_FIXED
EMPYREAN_STEERING_LAW_VELOCITY_TANGENT
EMPYREAN_TAGGED_COV_EPOCH_INDEX_OUT_OF_RANGE
EMPYREAN_TAGGED_COV_NO_DENSE_TRAJECTORY
EMPYREAN_TAGGED_COV_NO_INITIAL_COVARIANCE
EMPYREAN_TAGGED_COV_NULL_POINTER
EMPYREAN_TAGGED_COV_OK
EMPYREAN_TAGGED_COV_ORBIT_INDEX_OUT_OF_RANGE
EMPYREAN_TAGGED_COV_PANIC
EMPYREAN_TAGGED_COV_SAMPLE_COVARIANCE_MISSING
EMPYREAN_TAGGED_COV_STATE_MISSING
EMPYREAN_TAGGED_COV_TRANSFORM
EMPYREAN_TAGGED_COV_UNCERTAINTY
EMPYREAN_TARGET_FUNCTIONAL_CARTESIAN_STATE
EMPYREAN_TARGET_FUNCTIONAL_CLOSE_APPROACH_MISS_DISTANCE
EMPYREAN_TRUST_EVENT_CLOSE_APPROACH
EMPYREAN_TRUST_EVENT_HIGH_NONLINEARITY
EMPYREAN_TRUST_EVENT_NONE
EMPYREAN_UNCERTAINTY_AUTO
EMPYREAN_UNCERTAINTY_FIRST
EMPYREAN_UNCERTAINTY_MONTE_CARLO
EMPYREAN_UNCERTAINTY_SECOND
EMPYREAN_UNCERTAINTY_SIGMA_POINT
EMPYREAN_WEIGHTING_LAYER_NIGHTLY_DEWEIGHTING
EMPYREAN_WEIGHTING_LAYER_OBSERVATORY_RULE
EMPYREAN_WEIGHTING_PRESET_NEODYS
EMPYREAN_WEIGHTING_PRESET_NONE
EMPYREAN_WEIGHTING_PRESET_VFC17
LIB_PATH

Functions§

empyrean_builtsystem_describe
Populate out with a full reproducibility summary of the handle’s frozen force model and its captured kernel manifest.
empyrean_builtsystem_description_free
Free the heap arrays inside a description populated by empyrean_builtsystem_describe (the perturber-id array and the kernel records with their C strings). After this returns desc is zero-initialized — safe to drop on the caller’s stack. Passing null is a no-op.
empyrean_builtsystem_free
Free a handle previously returned by empyrean_builtsystem_new. Passing null is a no-op.
empyrean_builtsystem_generate_ephemeris
Generate predicted ephemeris for orbits and observers through the pre-built handle.
empyrean_builtsystem_new
Build a reusable force-model handle from a context.
empyrean_builtsystem_propagate
Propagate orbits to times through the pre-built handle.
empyrean_compute_b_planes
Run empyrean_core::impact::compute_b_planes over a caller- supplied set of UncertaintyMethod variants and return the flattened B-plane records tagged by method.
empyrean_compute_b_planes_result_free
Free the records array allocated by empyrean_compute_b_planes.
empyrean_compute_impact_probabilities
Run empyrean_core::impact::compute_impact_probabilities over a caller-supplied set of UncertaintyMethod variants and return the flattened IP records tagged by method.
empyrean_compute_impact_probabilities_result_free
Free the records array allocated by empyrean_compute_impact_probabilities. After calling, the struct’s records is reset to null and num_records to 0.
empyrean_context_free
Free an EmpyreanContext previously returned by empyrean_context_new().
empyrean_context_from_data_dir
Create a new EmpyreanContext from a data directory.
empyrean_context_new_minimal
Create a minimal EmpyreanContext from a DE440 SPK file and a GM TPC file.
empyrean_context_with_spk
Load an additional SPK kernel into an existing context, in place.
empyrean_default_data_dir
Return the platform XDG-compliant default data directory as a heap-allocated, NUL-terminated UTF-8 string.
empyrean_determine
Run the full orbit determination pipeline.
empyrean_eigenvector_max_6x6
Find the dominant eigenvalue and eigenvector of a 6x6 symmetric matrix.
empyrean_ephemeris_result_free
Free an ephemeris result previously returned by empyrean_generate_ephemeris().
empyrean_ephemeris_write_csv
Write ephemeris entries to CSV.
empyrean_ephemeris_write_json
Write ephemeris entries to JSON.
empyrean_ephemeris_write_parquet
Write ephemeris entries to parquet using the villeneuve schema.
empyrean_evaluate
Evaluate residuals for a single orbit against observations.
empyrean_evaluate_plan
Evaluate an observation plan: how much each candidate observation would tighten the prior orbit covariance.
empyrean_evaluate_result_free
Free an evaluate result previously returned by empyrean_evaluate().
empyrean_events_write_csv
Write events to CSV.
empyrean_events_write_json
Write events to JSON.
empyrean_events_write_parquet
Write events to parquet.
empyrean_generate_ephemeris
Generate predicted ephemeris for orbits and observers.
empyrean_get_observers
Compute observer states for given observatory codes and epochs.
empyrean_get_states
Query body states relative to a center body at given epochs.
empyrean_iso_to_mjd
Parse an ISO 8601 UTC string (e.g. "2024-08-01T00:00:00.000Z") to MJD in the requested target scale.
empyrean_last_error
Return a pointer to the last error message (thread-local, null-terminated).
empyrean_mjd_to_iso
Format an MJD value (in the given scale) as an ISO 8601 UTC string.
empyrean_observations_free
empyrean_observations_from_array
Free an observation array previously returned by empyrean_read_ades(). Copy a caller-owned array of EmpyreanObservation into a fresh allocation that matches the layout produced by empyrean_read_ades.
empyrean_observer_result_free
Free an observer result previously returned by empyrean_get_observers().
empyrean_od_result_free
Free an OD result previously returned by empyrean_determine() or empyrean_refine().
empyrean_orbits_batch_free
Free a batch previously returned by an empyrean_orbits_read_* function. Passing null is a no-op.
empyrean_orbits_read_csv
Read an orbits CSV file.
empyrean_orbits_read_json
Read an orbits JSON file (array of orbit-row objects). Caller frees with empyrean_orbits_batch_free.
empyrean_orbits_read_parquet
Read an orbits parquet file. Caller frees the result with empyrean_orbits_batch_free.
empyrean_orbits_write_csv
Write an orbit batch to CSV.
empyrean_orbits_write_json
Write an orbit batch to JSON.
empyrean_orbits_write_parquet
Write an orbit batch to a parquet file.
empyrean_plan_result_free
Free the heap allocations inside a plan result populated by empyrean_evaluate_plan. Does not free the caller-allocated struct.
empyrean_propagate
Propagate orbits to the requested target times.
empyrean_propagation_covariance_at_cartesian
Resolved-kind tagged covariance at a single (orbit_index, epoch_index), Cartesian basis (the gm-free point query). out is written on success.
empyrean_propagation_covariance_series_cartesian
Resolved-kind tagged covariance at every output epoch for one orbit, Cartesian basis. On success out_series owns the array; free with empyrean_tagged_covariance_series_free. On error out_series is left null and the detail is on empyrean_last_error().
empyrean_propagation_result_free
Free a propagation result previously returned by empyrean_propagate().
empyrean_query_horizons
Query JPL Horizons for predicted ephemeris records.
empyrean_query_horizons_vectors
Query JPL Horizons for a Cartesian state vector at a single epoch.
empyrean_query_observations
Query the MPC observations API for ADES records of one or more designations.
empyrean_query_radar
Query the JPL sb_radar API for delay/Doppler radar astrometry of one or more designations.
empyrean_query_sbdb
Query the JPL Small-Body Database for one or more orbits.
empyrean_radar_observations_free
Free a radar observation array previously returned by empyrean_read_ades or empyrean_radar_observations_from_array.
empyrean_radar_observations_from_array
Copy a caller-owned array of EmpyreanRadarObservation into a fresh allocation matching the layout produced by empyrean_read_ades.
empyrean_read_ades
Read ADES PSV / MPC80 data from a string and pack into the C array.
empyrean_refine
Refine a single orbit estimate with new observations using a Bayesian prior.
empyrean_residuals_write_csv
Write OD residuals to CSV.
empyrean_residuals_write_json
Write OD residuals to JSON.
empyrean_residuals_write_parquet
Write OD residuals to parquet.
empyrean_session_diff
Diff the current fit against an earlier history entry. Returns 0 on success, -1 if there is no current fit or prior_idx is out of bounds.
empyrean_session_free
Free a session previously returned by empyrean_session_new. Passing null is a no-op.
empyrean_session_get_history
Copy the i-th history entry into result_out. Returns 0 on success, -1 on null/out-of-bounds. Caller frees result_out with empyrean_od_result_free.
empyrean_session_history_len
Number of fits in the session history.
empyrean_session_is_masked
Whether the observation at idx is masked. Returns 1 = masked, 0 = active, 255 (-1 cast) on null/out-of-bounds.
empyrean_session_mask
Mask the observation at idx. Returns 0 on success, -1 on null or out-of-bounds.
empyrean_session_n_active
Number of observations active (not masked) in the next refine.
empyrean_session_n_masked
Number of observations currently masked.
empyrean_session_n_observations
Total number of observations in the session (masked or not). Returns 0 if session is null.
empyrean_session_new
Construct a new orbit-determination session over a fixed observation set.
empyrean_session_refine
Run an OD refine using the current mask state.
empyrean_session_unmask
Unmask the observation at idx. Returns 0 on success, -1 on null or out-of-bounds.
empyrean_session_unmask_all
Clear all masks. Returns 0 on success, -1 on null.
empyrean_split_gaussian
Split a 6D Gaussian into K weighted components along the dominant eigenvector of the covariance.
empyrean_state_result_free
Free a state result previously returned by empyrean_get_states().
empyrean_string_free
Free a string returned by an empyrean C API function (e.g., empyrean_default_data_dir, empyrean_version_string).
empyrean_tagged_covariance_series_free
Free a series returned by empyrean_propagation_covariance_series_cartesian.
empyrean_transform_coordinates
Transform a coordinate state to a new representation, frame, and/or origin.
empyrean_version_string
Multi-line version report — empyrean-core <ver>\nvilleneuve <ver>\n….
empyrean_versions
Populate out with the per-crate versions of the empyrean stack.
empyrean_versions_free
Free the version strings inside versions (each was heap-allocated by a previous successful empyrean_versions call). After this returns, versions itself is zero-initialized — safe to drop on the caller’s stack.
lib
The loaded libempyrean, opened lazily on first use.

Type Aliases§

EmpyreanContext
C FFI opaque handle. Internally an [empyrean_core::Context]; the C header forward-declares struct EmpyreanContext — callers only see the pointer.
EmpyreanSession
Opaque handle to an empyrean_core::determination::Session.