rsl_polynomials/
error.rs

1#[derive(thiserror::Error, std::fmt::Debug)]
2/// The error type for Polynomial operations.
3pub enum PolyError {
4    /// Supplied coefficients are NaN or Infinity
5    #[error("Supplied coefficients cannot be NaN or Infinity")]
6    InvalidCoefficients,
7
8    /// Cannot convert Complex to Float.
9    #[error("Cannot convert complex {0} to float.")]
10    ComplexTof64Conversion(Box<str>),
11
12    /// Supplied Polynomial is trivial.
13    #[error("Supplied Polynomial is trivial.")]
14    Trivial,
15
16    /// Supplied Polynomial has incorrect order.
17    #[error("Supplied Polynomial must be of order {0}")]
18    IncorrectOrder(usize),
19
20    /// Supplied Polynomial is constant.
21    #[error("Supplied Polynomial is constant.")]
22    ConstantPoly,
23
24    /// Supplied Polynomial is not quadratic.
25    #[error("Supplied Polynomial is not quadratic: {0}")]
26    NotQuadratic(Box<str>),
27
28    /// Supplied Polynomial has no real roots.
29    #[error("Supplied Polynomial has no real roots.")]
30    NoRealRoots,
31
32    /// Called solve_real() on a poly with complex coefficients.
33    #[error("Supplied Polynomial must have real coefficients.")]
34    NotRealCoefficients,
35
36    /// Discriminant calculation returned NaN.
37    #[error("Discriminant calculation returned NaN.")]
38    NanDiscriminant,
39}