pub enum DiscretizeMethod {
Tustin,
ExpTrapezoidal,
}Available on crate feature
alloc only.Expand description
Discretization method for ComplexDiagonalSSM.
Selects how the continuous-time complex eigenvalue A is mapped to a discrete-time transition coefficient α.
Variants§
Tustin
Bilinear (Tustin) transform: S4-style, 2-term recurrence.
α = (I + Δ/2·A)(I - Δ/2·A)⁻¹. Maps left-half s-plane to unit disk
exactly. Good for S4-style oscillatory SSMs.
ExpTrapezoidal
Exponential-trapezoidal: Mamba-3 spec, 3-term recurrence.
α = exp(Δ·A). Stronger stability (no Δ constraint). Requires
lambda per step — either fixed or data-dependent from the model.
See exp_trapezoidal_complex for the full 3-term derivation.
(Lahoti et al., arXiv:2603.15569, ICLR 2026, Table 1.)
Trait Implementations§
Source§impl Clone for DiscretizeMethod
impl Clone for DiscretizeMethod
Source§fn clone(&self) -> DiscretizeMethod
fn clone(&self) -> DiscretizeMethod
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DiscretizeMethod
impl Debug for DiscretizeMethod
Source§impl PartialEq for DiscretizeMethod
impl PartialEq for DiscretizeMethod
Source§fn eq(&self, other: &DiscretizeMethod) -> bool
fn eq(&self, other: &DiscretizeMethod) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for DiscretizeMethod
impl Eq for DiscretizeMethod
impl StructuralPartialEq for DiscretizeMethod
Auto Trait Implementations§
impl Freeze for DiscretizeMethod
impl RefUnwindSafe for DiscretizeMethod
impl Send for DiscretizeMethod
impl Sync for DiscretizeMethod
impl Unpin for DiscretizeMethod
impl UnsafeUnpin for DiscretizeMethod
impl UnwindSafe for DiscretizeMethod
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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