Skip to main content

axonml_quant/
error.rs

1//! Quantization Error Types
2//!
3//! Error types for quantization operations.
4//!
5//! @version 0.1.0
6//! @author AutomataNexus Development Team
7
8use thiserror::Error;
9
10/// Result type for quantization operations.
11pub type QuantResult<T> = Result<T, QuantError>;
12
13/// Errors that can occur during quantization.
14#[derive(Error, Debug)]
15pub enum QuantError {
16    /// Invalid block size.
17    #[error("Invalid block size: {0}")]
18    InvalidBlockSize(usize),
19
20    /// Invalid quantization type.
21    #[error("Invalid quantization type: {0}")]
22    InvalidQuantType(String),
23
24    /// Shape mismatch during quantization.
25    #[error("Shape mismatch: expected {expected:?}, got {actual:?}")]
26    ShapeMismatch {
27        /// Expected shape.
28        expected: Vec<usize>,
29        /// Actual shape.
30        actual: Vec<usize>,
31    },
32
33    /// Data length mismatch.
34    #[error("Data length mismatch: expected {expected}, got {actual}")]
35    DataLengthMismatch {
36        /// Expected length.
37        expected: usize,
38        /// Actual length.
39        actual: usize,
40    },
41
42    /// Calibration error.
43    #[error("Calibration error: {0}")]
44    CalibrationError(String),
45
46    /// Numerical overflow during quantization.
47    #[error("Numerical overflow during quantization")]
48    Overflow,
49
50    /// Invalid quantized data.
51    #[error("Invalid quantized data: {0}")]
52    InvalidData(String),
53
54    /// Tensor conversion error.
55    #[error("Tensor conversion error: {0}")]
56    TensorConversion(String),
57}