Struct yata::methods::UpperReversalSignal
source · [−]pub struct UpperReversalSignal { /* private fields */ }
Expand description
Searches for upper reversal points over last left
+right
+1 values of type ValueType
Parameters
Has a tuple of 2 parameters (left
: PeriodType
, right
: PeriodType
)
left
should be > 0 and right
should be > 0
There is an additional restriction on parameters: left
+right
+1 should be <= PeriodType
::MAX
.
So if your PeriodType
is default u8
, then left
+right
+1 should be <= 255
Input type
Input type is ValueType
Output type
Output type is Action
use yata::core::Method;
use yata::methods::UpperReversalSignal;
let s = [1.0, 2.0, 3.0, 2.0, 1.0, 1.0, 2.0];
let r = [ 0, 0, 0, 0, 1, 0, 0 ];
let mut pivot = UpperReversalSignal::new(2, 2, &s[0]).unwrap();
let r2: Vec<i8> = s.iter().map(|v| pivot.next(v).analog()).collect();
assert_eq!(r2, r);
Performance
O(left
+right
)
See also
Implementations
sourceimpl UpperReversalSignal
impl UpperReversalSignal
sourcepub fn new(
left: PeriodType,
right: PeriodType,
value: &ValueType
) -> Result<Self, Error>
pub fn new(
left: PeriodType,
right: PeriodType,
value: &ValueType
) -> Result<Self, Error>
Constructs new instanceof UpperReversalSignal
It’s just an alias for Method::new((left, right), value)
but without parentheses of Input
tuple
Trait Implementations
sourceimpl Clone for UpperReversalSignal
impl Clone for UpperReversalSignal
sourcefn clone(&self) -> UpperReversalSignal
fn clone(&self) -> UpperReversalSignal
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for UpperReversalSignal
impl Debug for UpperReversalSignal
sourceimpl<'de> Deserialize<'de> for UpperReversalSignal
impl<'de> Deserialize<'de> for UpperReversalSignal
sourcefn 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
sourceimpl Method for UpperReversalSignal
impl Method for UpperReversalSignal
type Params = (PeriodType, PeriodType)
type Params = (PeriodType, PeriodType)
Method parameters
sourcefn new(params: Self::Params, value: &Self::Input) -> Result<Self, Error>
fn new(params: Self::Params, value: &Self::Input) -> Result<Self, Error>
Static method for creating an instance of the method with given parameters
and initial value
(simply first input value)
sourcefn next(&mut self, value: &Self::Input) -> Self::Output
fn next(&mut self, value: &Self::Input) -> Self::Output
Generates next output value based on the given input value
sourcefn with_history(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithHistory<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
fn with_history(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithHistory<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
Creates an instance of the method with given parameters
and initial value
, wrapped by historical data holder
sourcefn with_last_value(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithLastValue<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
fn with_last_value(
parameters: Self::Params,
initial_value: &Self::Input
) -> Result<WithLastValue<Self, Self::Output>, Error> where
Self: Sized,
Self::Output: Debug + Clone,
Creates an instance of the method with given parameters
and initial value
, wrapped by last produced value holder
sourcefn memsize(&self) -> (usize, usize) where
Self: Sized,
fn memsize(&self) -> (usize, usize) where
Self: Sized,
Returns memory size of the method (size, align)
sourcefn over<S>(&mut self, inputs: S) -> Vec<Self::Output> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
fn over<S>(&mut self, inputs: S) -> Vec<Self::Output> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
Iterates the Method
over the given inputs
slice and returns Vec
of output values. Read more
sourcefn apply<T, S>(&mut self, sequence: &mut S) where
S: Sequence<T> + AsMut<[T]> + ?Sized,
Self: Method<Input = T, Output = T> + Sized,
fn apply<T, S>(&mut self, sequence: &mut S) where
S: Sequence<T> + AsMut<[T]> + ?Sized,
Self: Method<Input = T, Output = T> + Sized,
Applies method to the sequence in-place.
sourcefn new_over<S>(
parameters: Self::Params,
inputs: S
) -> Result<Vec<Self::Output>, Error> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
fn new_over<S>(
parameters: Self::Params,
inputs: S
) -> Result<Vec<Self::Output>, Error> where
S: Sequence<Self::Input>,
Self::Input: Sized,
Self: Sized,
Creates new Method
instance and iterates it over the given inputs
slice and returns Vec
of output values. Read more
sourcefn new_apply<T, S>(
parameters: Self::Params,
sequence: &mut S
) -> Result<(), Error> where
S: Sequence<T> + AsMut<[T]>,
Self: Method<Input = T, Output = T> + Sized,
fn new_apply<T, S>(
parameters: Self::Params,
sequence: &mut S
) -> Result<(), Error> where
S: Sequence<T> + AsMut<[T]>,
Self: Method<Input = T, Output = T> + Sized,
Creates new Method
instance and applies it to the sequence
.
sourceimpl Serialize for UpperReversalSignal
impl Serialize for UpperReversalSignal
Auto Trait Implementations
impl RefUnwindSafe for UpperReversalSignal
impl Send for UpperReversalSignal
impl Sync for UpperReversalSignal
impl Unpin for UpperReversalSignal
impl UnwindSafe for UpperReversalSignal
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more