pub enum SolverResult {
Single(Expression),
Multiple(Vec<Expression>),
NoSolution,
InfiniteSolutions,
Parametric(Vec<Expression>),
Partial(Vec<Expression>),
}Expand description
Unified result type for equation solvers
Variants§
Single(Expression)
Single solution found
Multiple(Vec<Expression>)
Multiple solutions found
NoSolution
No solution exists
InfiniteSolutions
Infinite solutions exist
Parametric(Vec<Expression>)
Parametric solutions (for systems)
Partial(Vec<Expression>)
Partial solutions found (some but not all roots) Used when a solver can find some roots but not all expected roots. For example, a cubic equation may have one real root found via rational root theorem, but the remaining complex roots cannot be computed without implementing the full cubic formula.
Implementations§
Source§impl SolverResult
impl SolverResult
Sourcepub fn is_valid_solution(&self) -> bool
pub fn is_valid_solution(&self) -> bool
Check if result represents a valid solution
Sourcepub fn solution_count(&self) -> Option<usize>
pub fn solution_count(&self) -> Option<usize>
Get number of solutions
Trait Implementations§
Source§impl Clone for SolverResult
impl Clone for SolverResult
Source§fn clone(&self) -> SolverResult
fn clone(&self) -> SolverResult
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SolverResult
impl Debug for SolverResult
Source§impl<'de> Deserialize<'de> for SolverResult
impl<'de> Deserialize<'de> for SolverResult
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for SolverResult
impl PartialEq for SolverResult
Source§impl Serialize for SolverResult
impl Serialize for SolverResult
impl StructuralPartialEq for SolverResult
Auto Trait Implementations§
impl Freeze for SolverResult
impl RefUnwindSafe for SolverResult
impl Send for SolverResult
impl Sync for SolverResult
impl Unpin for SolverResult
impl UnwindSafe for SolverResult
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more