#[derive(thiserror::Error, std::fmt::Debug)]
pub enum PolyError {
#[error("Supplied coefficients cannot be NaN or Infinity")]
InvalidCoefficients,
#[error("Cannot convert complex {0} to float.")]
ComplexTof64Conversion(Box<str>),
#[error("Supplied Polynomial is trivial.")]
Trivial,
#[error("Supplied Polynomial must be of order {0}")]
IncorrectOrder(usize),
#[error("Supplied Polynomial is constant.")]
ConstantPoly,
#[error("Supplied Polynomial is not quadratic: {0}")]
NotQuadratic(Box<str>),
#[error("Supplied Polynomial has no real roots.")]
NoRealRoots,
#[error("Supplied Polynomial must have real coefficients.")]
NotRealCoefficients,
#[error("Discriminant calculation returned NaN.")]
NanDiscriminant,
}