use crate::{EvalCounts, Scalar};
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[non_exhaustive]
pub enum Phase {
Subproblem,
InvalidModel,
NoProgress,
TrialEvaluation,
GradientRefresh,
Accepted,
Rejected,
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct Trial<F: Scalar = f64> {
pub sequence: u64,
pub phase: Phase,
pub radius_before: F,
pub radius_after: Option<F>,
pub gradient_norm_squared: F,
pub step_norm_squared: Option<F>,
pub predicted_reduction: Option<F>,
pub trial_cost: Option<F>,
pub ratio: Option<F>,
pub hit_boundary: Option<bool>,
pub eta: F,
pub counts_before: EvalCounts,
pub counts_after: EvalCounts,
}