pub struct AdaptiveMcReportV1 {Show 19 fields
pub schema_version: u32,
pub method: String,
pub assumptions: Vec<String>,
pub confidence_percent: u32,
pub hit_probability: f64,
pub ci_low: f64,
pub ci_high: f64,
pub samples: u64,
pub attempts: u64,
pub arrivals: u64,
pub stop_reason: McStopReason,
pub hit_radius_m: f64,
pub target_distance_m: f64,
pub mean_impact_velocity_mps: f64,
pub std_impact_velocity_mps: f64,
pub mean_drop_at_target_m: f64,
pub std_drop_at_target_m: f64,
pub mean_wind_drift_at_target_m: f64,
pub std_wind_drift_at_target_m: f64,
}Expand description
The result of a confidence-controlled Monte Carlo run.
Produced by run_monte_carlo_adaptive_seeded. Unlike MonteCarloResults this retains
no per-trial data at all: the continuous quantities arrive as streaming Welford moments
and the hit/miss counts as a running confidence sequence, so a 100,000-trial run costs the
same memory as a 1,000-trial one.
Fields§
§schema_version: u32Always MC_ADAPTIVE_SCHEMA_VERSION_V1.
method: StringAlways MC_ADAPTIVE_METHOD_V1.
assumptions: Vec<String>Always the four sentences of MC_ADAPTIVE_ASSUMPTIONS_V1, in order.
confidence_percent: u32Confidence level of ci_low/ci_high, as a whole-number percentage.
hit_probability: f64Point estimate S / n: hits over all trials, including trials that never reached the
target plane.
ci_low: f64Lower bound of the anytime-valid interval.
ci_high: f64Upper bound of the anytime-valid interval.
samples: u64Trials actually folded into the statistics (n).
attempts: u64Trials drawn, including any the solver could not complete.
attempts - samples is the drop count. It is normally zero, and equals samples
whenever it is – but without this field a run with a 40% solver-failure rate is
indistinguishable in the payload from a clean one at the same samples, which is the
one thing samples alone cannot tell you. attempts is also what
McConvergence::max_samples caps, so McStopReason::MaxSamplesReached always has
attempts == max_samples – but the reverse does not hold: a
McStopReason::TargetHalfWidthMet stop on the very last batch can reach the same
equality, so attempts == max_samples alone does not identify the stop reason.
arrivals: u64Trials that reached the target plane – the population behind the three at-target
statistics below, and the n in their n-1 standard deviations.
This is the magnitude behind the asymmetry assumptions[3] discloses qualitatively:
mean_drop_at_target_m, mean_wind_drift_at_target_m and mean_impact_velocity_mps
describe these arrivals trials, while hit_probability is over all samples (a
trial that fell short is a definite miss, so it is in that denominator but has no
measured position to contribute). With arrivals well below samples, the at-target
statistics describe only part of the run and this field is what says so.
The fixed-count path exposes the same information as
MonteCarloResults::target_arrival_count and
MonteCarloResults::target_shortfall_fraction; samples - arrivals is the shortfall
count and 1 - arrivals / samples the shortfall fraction.
stop_reason: McStopReasonWhy the run stopped. Serializes as "target_half_width_met" / "max_samples_reached".
hit_radius_m: f64Hit-zone radius the probability was computed against.
target_distance_m: f64Resolved target plane: params.target_distance if given, else the baseline’s max range.
mean_impact_velocity_mps: f64Mean ground-impact velocity over trials that reached the target plane.
The velocity is the one the legacy path records: speed at ground impact, not at the target plane (MBA-967). Only the conditioning is on reaching the plane.
std_impact_velocity_mps: f64Sample (n-1) standard deviation of the above. 0.0 for fewer than two such trials.
mean_drop_at_target_m: f64Mean vertical deviation from the baseline point of aim at the target plane, in meters, positive high.
Named “drop” for continuity with the rest of the API, but it is a deviation from the
undispersed baseline, not a drop from the bore line: with symmetric input dispersions
its expectation is near zero and the informative number is
std_drop_at_target_m.
std_drop_at_target_m: f64Sample (n-1) standard deviation of the vertical deviation – the run’s vertical
dispersion at the target.
mean_wind_drift_at_target_m: f64Mean lateral deviation from the baseline point of aim at the target plane, in meters.
The same “deviation, not absolute” caveat as mean_drop_at_target_m applies.
std_wind_drift_at_target_m: f64Sample (n-1) standard deviation of the lateral deviation – the run’s horizontal
dispersion at the target.
Trait Implementations§
Source§impl Clone for AdaptiveMcReportV1
impl Clone for AdaptiveMcReportV1
Source§fn clone(&self) -> AdaptiveMcReportV1
fn clone(&self) -> AdaptiveMcReportV1
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AdaptiveMcReportV1
impl Debug for AdaptiveMcReportV1
Auto Trait Implementations§
impl Freeze for AdaptiveMcReportV1
impl RefUnwindSafe for AdaptiveMcReportV1
impl Send for AdaptiveMcReportV1
impl Sync for AdaptiveMcReportV1
impl Unpin for AdaptiveMcReportV1
impl UnsafeUnpin for AdaptiveMcReportV1
impl UnwindSafe for AdaptiveMcReportV1
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.