///|
/// Records directly computed optimization evidence for a fitted binary model.
pub struct ConvergenceReport {
  completed_iterations : Int
  completed_pair_updates : Int
  retained_support_vectors : Int
  largest_kkt_violation : Double
  final_dual_objective : Double
  reached_stopping_condition : Bool
} derive(Eq, Debug)

///|
/// Stores the support-vector representation of a fitted binary C-SVC model.
pub struct BinaryModel {
  support_rows : Array[Array[Double]]
  support_class_labels : Array[Int]
  support_alpha_values : Array[Double]
  signed_coefficients : Array[Double]
  bias_value : Double
  input_columns : Int
  model_kernel : Kernel
  lower_class : Int
  upper_class : Int
  convergence_data : ConvergenceReport
} derive(Eq, Debug)