[−][src]Struct yata::methods::Integral
Integrates (summarizes) ValueType
values for the given window size length
Parameters
Has a single parameter length
: PeriodType
If length
== 0, then integrates since the beginning of timeseries
Input type
Input type is ValueType
Output type
Output type is ValueType
Examples
use yata::prelude::*; use yata::methods::Integral; // Integrates over last 3 values let mut integral = Integral::new(3, 1.0); integral.next(1.0); integral.next(2.0); assert_eq!(integral.next(3.0), 6.0); // 1 + 2 + 3 assert_eq!(integral.next(4.0), 9.0); // 2 + 3 + 4 assert_eq!(integral.next(5.0), 12.0); // 3 + 4 + 5
use yata::prelude::*; use yata::methods::Integral; // Integrates since the beginning let mut integral = Integral::new(0, 1.0); // same as Integral::default() integral.next(1.0); integral.next(2.0); assert_eq!(integral.next(3.0), 6.0); // 1 + 2 + 3 assert_eq!(integral.next(4.0), 10.0); // 1 + 2 + 3 + 4 assert_eq!(integral.next(5.0), 15.0); // 1 + 2 + 3 + 4 + 5
Intergal is opposite method for Derivative
use yata::prelude::*; use yata::methods::{Integral, Derivative}; let s = [1.0, 2.0, 3.0, 3.0, 2.5, 3.5, 5.0]; let mut integral = Integral::default(); let mut derivative = Derivative::new(1, s[0]); (&s).iter().for_each(|&v| { let integration_constant = s[0]; let der = derivative.next(v); let integr = integral.next(der) + integration_constant; assert_eq!(integr, v); });
Perfomance
O(1)
See also
Trait Implementations
impl Clone for Integral
[src]
impl Debug for Integral
[src]
impl Default for Integral
[src]
impl<'de> Deserialize<'de> for Integral
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Method for Integral
[src]
type Params = PeriodType
Method parameters
type Input = ValueType
Input value type
type Output = Self::Input
Output value type
fn new(length: Self::Params, value: Self::Input) -> Self
[src]
fn next(&mut self, value: Self::Input) -> Self::Output
[src]
fn name(&self) -> &str
[src]
fn memsize(&self) -> (usize, usize) where
Self: Sized,
[src]
Self: Sized,
fn iter_data<I>(&mut self, input: I) -> MethodOverIterator<'_, Self, I> where
I: Iterator<Item = Self::Input>,
Self: Sized,
[src]
I: Iterator<Item = Self::Input>,
Self: Sized,
fn over<I>(&mut self, sequence: I) -> Sequence<Self::Output> where
I: Iterator<Item = Self::Input>,
Self: Sized,
[src]
I: Iterator<Item = Self::Input>,
Self: Sized,
impl Serialize for Integral
[src]
Auto Trait Implementations
impl RefUnwindSafe for Integral
impl Send for Integral
impl Sync for Integral
impl Unpin for Integral
impl UnwindSafe for Integral
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,