amari_calculus/
error.rs

1//! Error types for geometric calculus operations
2
3use thiserror::Error;
4
5/// Errors that can occur during calculus operations
6#[derive(Error, Debug, Clone, PartialEq)]
7pub enum CalculusError {
8    /// Invalid coordinate dimension
9    #[error("Invalid coordinate dimension: expected {expected}, got {got}")]
10    InvalidDimension { expected: usize, got: usize },
11
12    /// Numerical differentiation failed
13    #[error("Numerical differentiation failed: {reason}")]
14    DifferentiationFailed { reason: String },
15
16    /// Integration error
17    #[error("Integration failed: {reason}")]
18    IntegrationFailed { reason: String },
19
20    /// Invalid coordinate system for operation
21    #[error("Invalid coordinate system: {0}")]
22    InvalidCoordinateSystem(String),
23
24    /// Manifold computation error
25    #[error("Manifold computation failed: {reason}")]
26    ManifoldError { reason: String },
27
28    /// Field evaluation error
29    #[error("Field evaluation failed at point: {reason}")]
30    FieldEvaluationError { reason: String },
31
32    /// Covariant derivative error
33    #[error("Covariant derivative computation failed: {reason}")]
34    CovariantDerivativeError { reason: String },
35
36    /// Metric tensor error
37    #[error("Metric tensor error: {reason}")]
38    MetricError { reason: String },
39
40    /// Numerical instability detected
41    #[error("Numerical instability: {reason}")]
42    NumericalInstability { reason: String },
43}
44
45/// Result type for calculus operations
46pub type CalculusResult<T> = Result<T, CalculusError>;