///|
/// Describes rejected data, invalid configurations, and failed SVM operations.
pub(all) enum SvmError {
EmptyDataset
EmptyFeatureSet
RaggedRow(Int, Int, Int)
LabelLengthMismatch(Int, Int)
NonFiniteFeature(Int, Int)
SingleClassDataset
InvalidSubsetIndex(Int, Int)
DuplicateSubsetIndex(Int)
InvalidKernelParameter(String, Double)
KernelDimensionMismatch(Int, Int)
InvalidConfiguration(String, Double)
InvalidIterationCount(Int)
InvalidWeight(Int, Double)
WeightLengthMismatch(Int, Int)
InvalidClassWeight(Int, Double)
DuplicateClassWeight(Int)
ZeroEffectiveWeight
InvalidBinaryClassCount(Int)
PredictionDimensionMismatch(Int, Int)
TrainingDidNotConverge(Int)
NumericFailure(String)
InvalidFoldCount(Int)
InsufficientClassSamples(Int, Int, Int)
EmptyMetricInput
MetricLengthMismatch(Int, Int)
UnknownClassLabel(Int)
InvalidCandidateCount(Int)
NoValidCandidate
NonFiniteReportValue(String)
} derive(Eq, Debug)
///|
/// Returns a stable machine-readable category for an error.
pub fn error_code(error : SvmError) -> String {
match error {
EmptyDataset => "empty_dataset"
EmptyFeatureSet => "empty_feature_set"
RaggedRow(_, _, _) => "ragged_row"
LabelLengthMismatch(_, _) => "label_length_mismatch"
NonFiniteFeature(_, _) => "nonfinite_feature"
SingleClassDataset => "single_class_dataset"
InvalidSubsetIndex(_, _) => "invalid_subset_index"
DuplicateSubsetIndex(_) => "duplicate_subset_index"
InvalidKernelParameter(_, _) => "invalid_kernel_parameter"
KernelDimensionMismatch(_, _) => "kernel_dimension_mismatch"
InvalidConfiguration(_, _) => "invalid_configuration"
InvalidIterationCount(_) => "invalid_iteration_count"
InvalidWeight(_, _) => "invalid_weight"
WeightLengthMismatch(_, _) => "weight_length_mismatch"
InvalidClassWeight(_, _) => "invalid_class_weight"
DuplicateClassWeight(_) => "duplicate_class_weight"
ZeroEffectiveWeight => "zero_effective_weight"
InvalidBinaryClassCount(_) => "invalid_binary_class_count"
PredictionDimensionMismatch(_, _) => "prediction_dimension_mismatch"
TrainingDidNotConverge(_) => "training_did_not_converge"
NumericFailure(_) => "numeric_failure"
InvalidFoldCount(_) => "invalid_fold_count"
InsufficientClassSamples(_, _, _) => "insufficient_class_samples"
EmptyMetricInput => "empty_metric_input"
MetricLengthMismatch(_, _) => "metric_length_mismatch"
UnknownClassLabel(_) => "unknown_class_label"
InvalidCandidateCount(_) => "invalid_candidate_count"
NoValidCandidate => "no_valid_candidate"
NonFiniteReportValue(_) => "nonfinite_report_value"
}
}