Skip to main content

Module cli_api

Module cli_api 

Source

Structs§

AtmosphericConditions
BallisticInputs
BallisticsError
BcEstimate
The result of a single BC fit (one drag model, one fit basis).
MonteCarloParams
MonteCarloResults
TrajectoryPoint
TrajectoryResult
TrajectorySolver
WindConditions

Enums§

BcFitMode
What a BC estimate is fit against.
OutputFormat
UnitSystem
Unit system for CLI-style inputs and outputs.

Constants§

DEFAULT_HIT_RADIUS_M
Default hit-zone radius (meters) around the point of aim at the target plane — a 30 cm circle. Shared by the CLI, FFI, and WASM so “hit probability” means the same thing everywhere.
MAX_TRAJECTORY_POINTS
Hard ceiling for points retained by a single TrajectorySolver result.
TARGET_NOT_REACHED_SENTINEL_M
Vertical-position marker for a Monte Carlo sample that never reached the target plane.

Functions§

calculate_zero_angle
calculate_zero_angle_with_conditions
estimate_bc_fit
Estimate a BC by fitting a simulated trajectory to measured data, for a chosen drag model (G1, G7, …) and fit basis (drop or velocity). Uses a coarse 0.01 sweep over plausible BCs followed by a 0.001 local refine around the coarse best.
estimate_bc_from_trajectory
Estimate a G1 BC from a drop curve. Back-compatible wrapper over estimate_bc_fit; points are (distance_m, drop_m).
interpolate_powder_temp_curve
Interpolate a muzzle velocity (m/s) from a measured powder-temperature curve at temp_c (Celsius). curve is (temperature_celsius, velocity_m_s) points; it is sorted ascending by temperature before use. Values below the first point or above the last are CLAMPED to the endpoint velocity (no extrapolation beyond measured data), and segments are linearly interpolated. A single point yields a constant.
parse_powder_sweep
Parse a --sweep START:END:STEP temperature range (display units) for the powder command — ONE parser shared by the native CLI and WASM so their validation cannot drift. Returns the inclusive row temperatures. Guarded: STEP must be positive, END >= START, and the row count is capped so a typo can’t emit an unbounded table.
resolve_powder_adjusted_velocity
Resolve the powder-temperature-adjusted muzzle velocity (m/s) — the velocity the solver actually flies. A non-empty measured powder_temp_curve takes precedence (interpolated at powder_curve_temp_c, falling back to the ambient ambient_temperature_c; clamped at the endpoints) and REPLACES the nominal velocity; otherwise, when use_powder_sensitivity is set, the linear model adds sensitivity x (ambient - reference) to it. All inputs canonical SI (Celsius, m/s). This is the single shared implementation behind the trajectory solve, the powder CLI/WASM command (MBA-737), and anything else that must agree with them.
run_monte_carlo
run_monte_carlo_with_direction_std_dev
Run Monte Carlo with an independent wind-direction standard deviation in radians.
run_monte_carlo_with_wind
run_monte_carlo_with_wind_and_direction_std_dev
Run Monte Carlo with explicit base wind and independent direction uncertainty in radians.
run_monte_carlo_with_wind_and_direction_std_dev_seeded
Run Monte Carlo with an explicit PRNG seed, for deterministic/reproducible output.