pub enum InconclusiveReason {
DataTooNoisy {
message: String,
guidance: String,
variance_ratio: f64,
},
NotLearning {
message: String,
guidance: String,
recent_kl_sum: f64,
},
WouldTakeTooLong {
estimated_time_secs: f64,
samples_needed: usize,
guidance: String,
},
TimeBudgetExceeded {
current_probability: f64,
samples_collected: usize,
elapsed_secs: f64,
},
SampleBudgetExceeded {
current_probability: f64,
samples_collected: usize,
},
ConditionsChanged {
message: String,
guidance: String,
drift_description: String,
},
ThresholdElevated {
theta_user: f64,
theta_eff: f64,
leak_probability_at_eff: f64,
meets_pass_criterion_at_eff: bool,
achievable_at_max: bool,
message: String,
guidance: String,
},
}Expand description
Reason why the adaptive loop stopped inconclusively.
Variants§
DataTooNoisy
Posterior is too close to prior - data isn’t informative.
Fields
NotLearning
Posterior stopped updating despite new data.
Fields
WouldTakeTooLong
Estimated time to decision exceeds acceptable limit.
Fields
TimeBudgetExceeded
Time budget exceeded without reaching decision.
Fields
SampleBudgetExceeded
Sample budget exceeded without reaching decision.
Fields
ConditionsChanged
Measurement conditions changed during the test (Gate 6).
Detected by comparing calibration statistics with post-test statistics. This can indicate environmental interference (CPU frequency scaling, concurrent processes, etc.) that invalidates the covariance estimate.
Fields
ThresholdElevated
Threshold was elevated and pass criterion was met at effective threshold.
The measurement floor exceeded the user’s requested threshold, so inference was performed at an elevated effective threshold. The posterior probability dropped below pass_threshold at θ_eff, but since θ_eff > θ_user + ε, we cannot guarantee the user’s original requirement is met.
This is NOT a quality gate - it’s checked at decision time in loop_runner.
Fields
Trait Implementations§
Source§impl Clone for InconclusiveReason
impl Clone for InconclusiveReason
Source§fn clone(&self) -> InconclusiveReason
fn clone(&self) -> InconclusiveReason
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for InconclusiveReason
impl RefUnwindSafe for InconclusiveReason
impl Send for InconclusiveReason
impl Sync for InconclusiveReason
impl Unpin for InconclusiveReason
impl UnwindSafe for InconclusiveReason
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.