pub enum TransferFunction {
Linear {
coefficient: f64,
intercept: f64,
},
Exponential {
base: f64,
rate: f64,
},
Logistic {
capacity: f64,
midpoint: f64,
steepness: f64,
},
InverseLogistic {
capacity: f64,
midpoint: f64,
steepness: f64,
},
Step {
threshold: f64,
magnitude: f64,
},
Threshold {
threshold: f64,
magnitude: f64,
saturation: f64,
},
Decay {
initial: f64,
decay_rate: f64,
},
Piecewise {
points: Vec<(f64, f64)>,
},
}Variants§
Linear
output = input * coefficient + intercept
Exponential
output = base * (1 + rate)^input
Logistic
output = capacity / (1 + e^(-steepness * (input - midpoint)))
InverseLogistic
output = capacity / (1 + e^(steepness * (input - midpoint)))
Step
output = magnitude when input crosses threshold, else 0
Threshold
output = magnitude when input > threshold, scaling linearly above
Decay
output = initial * e^(-decay_rate * input)
Piecewise
Lookup table with linear interpolation between points.
Implementations§
Trait Implementations§
Source§impl Clone for TransferFunction
impl Clone for TransferFunction
Source§fn clone(&self) -> TransferFunction
fn clone(&self) -> TransferFunction
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 TransferFunction
impl Debug for TransferFunction
Source§impl<'de> Deserialize<'de> for TransferFunction
impl<'de> Deserialize<'de> for TransferFunction
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
Auto Trait Implementations§
impl Freeze for TransferFunction
impl RefUnwindSafe for TransferFunction
impl Send for TransferFunction
impl Sync for TransferFunction
impl Unpin for TransferFunction
impl UnsafeUnpin for TransferFunction
impl UnwindSafe for TransferFunction
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.