pub struct MonteCarloResults {
pub ranges: Vec<f64>,
pub impact_velocities: Vec<f64>,
pub impact_positions: Vec<Vector3<f64>>,
}Fields§
§ranges: Vec<f64>§impact_velocities: Vec<f64>§impact_positions: Vec<Vector3<f64>>Deviations from the baseline point of aim at the target plane.
A sample that falls short of the plane is encoded as
(0, TARGET_NOT_REACHED_SENTINEL_M, 0) so it remains aligned with
ranges and impact_velocities and still counts as a miss.
Implementations§
Source§impl MonteCarloResults
impl MonteCarloResults
Sourcepub fn position_reached_target(position: &Vector3<f64>) -> bool
pub fn position_reached_target(position: &Vector3<f64>) -> bool
Whether an encoded impact position represents a finite arrival at the target plane.
Sourcepub fn target_arrival_count(&self) -> usize
pub fn target_arrival_count(&self) -> usize
Number of recorded simulations that reached the target plane.
Sourcepub fn target_shortfall_fraction(&self) -> f64
pub fn target_shortfall_fraction(&self) -> f64
Fraction of recorded simulations that fell short of (or otherwise failed to produce a finite position at) the target plane.
Sourcepub fn target_plane_cep(&self) -> Option<f64>
pub fn target_plane_cep(&self) -> Option<f64>
Upper-median radial miss among samples that reached the target plane.
This preserves the CLI’s historical radial-to-baseline “CEP (approx)” convention while
preventing the finite target-shortfall marker from becoming the median (MBA-1159).
Returns None when no recorded simulation reached the target plane.
Sourcepub fn hit_probability(&self, hit_radius_m: f64) -> f64
pub fn hit_probability(&self, hit_radius_m: f64) -> f64
Fraction of simulations whose impact at the target plane lands within hit_radius_m
of the point of aim. impact_positions are deviations from the baseline at the target
plane (the downrange component is 0), so the vector norm is the radial miss distance.
Samples that fall short of the target remain in the denominator and count as misses.
Returns 0.0 when there are no samples.
Single source of truth for hit probability — previously the CLI used a range-precision notion and the FFI a position notion with a redundant clause, so they disagreed.
Trait Implementations§
Source§impl Clone for MonteCarloResults
impl Clone for MonteCarloResults
Source§fn clone(&self) -> MonteCarloResults
fn clone(&self) -> MonteCarloResults
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for MonteCarloResults
impl RefUnwindSafe for MonteCarloResults
impl Send for MonteCarloResults
impl Sync for MonteCarloResults
impl Unpin for MonteCarloResults
impl UnsafeUnpin for MonteCarloResults
impl UnwindSafe for MonteCarloResults
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.