pub enum SolutionForm {
Explicit(ExprId),
Implicit(ExprId),
}Expand description
How a general solution is written down.
Separable and exact equations routinely have no closed form for y: the
answer is a relation G(x, y) = 0 that the solution curves satisfy, and
refusing to return one would refuse most of the two classes. The two cases
are kept in distinct variants rather than in one ExprId field so that a
caller cannot read a relation as if it were y(x) — the single most likely
way for this addition to produce a wrong answer downstream.
Variants§
Explicit(ExprId)
y(x) = expr, with expr free of y.
Implicit(ExprId)
expr(x, y) = 0, an implicit general solution that could not be solved
for y. Every solution curve of the ODE in the region satisfies it,
and every level set of it solves the ODE — the latter is what the
verification gate checks, by substituting y' = −Gₓ/G_y.
Trait Implementations§
Source§impl Clone for SolutionForm
impl Clone for SolutionForm
impl Copy for SolutionForm
Source§impl Debug for SolutionForm
impl Debug for SolutionForm
impl Eq for SolutionForm
Source§impl PartialEq for SolutionForm
impl PartialEq for SolutionForm
impl StructuralPartialEq for SolutionForm
Auto Trait Implementations§
impl Freeze for SolutionForm
impl RefUnwindSafe for SolutionForm
impl Send for SolutionForm
impl Sync for SolutionForm
impl Unpin for SolutionForm
impl UnsafeUnpin for SolutionForm
impl UnwindSafe for SolutionForm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> ⓘ
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> ⓘ
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