pub struct Integral { /* private fields */ }
Expand description
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).unwrap();
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).unwrap(); // 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
§Integral 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]).unwrap();
(&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);
});
§Performance
O(1)
§See also
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Integral
impl<'de> Deserialize<'de> for Integral
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
Source§impl Method for Integral
impl Method for Integral
Source§fn new(length: Self::Params, value: &Self::Input) -> Result<Self, Error>
fn new(length: 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)Source§fn 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
Source§fn with_history(
parameters: Self::Params,
initial_value: &Self::Input,
) -> Result<WithHistory<Self, Self::Output>, Error>
fn with_history( parameters: Self::Params, initial_value: &Self::Input, ) -> Result<WithHistory<Self, Self::Output>, Error>
Creates an instance of the method with given
parameters
and initial value
, wrapped by historical data holderSource§fn with_last_value(
parameters: Self::Params,
initial_value: &Self::Input,
) -> Result<WithLastValue<Self, Self::Output>, Error>
fn with_last_value( parameters: Self::Params, initial_value: &Self::Input, ) -> Result<WithLastValue<Self, Self::Output>, Error>
Creates an instance of the method with given
parameters
and initial value
, wrapped by last produced value holderSource§fn memsize(&self) -> (usize, usize)where
Self: Sized,
fn memsize(&self) -> (usize, usize)where
Self: Sized,
👎Deprecated
Returns memory size of the method
(size, align)
Source§fn new_over<S>(
parameters: Self::Params,
inputs: S,
) -> Result<Vec<Self::Output>, Error>
fn new_over<S>( parameters: Self::Params, inputs: S, ) -> Result<Vec<Self::Output>, Error>
Creates new
Method
instance and iterates it over the given inputs
slice and returns Vec
of output values. Read moreSource§fn new_apply<T, S>(
parameters: Self::Params,
sequence: &mut S,
) -> Result<(), Error>
fn new_apply<T, S>( parameters: Self::Params, sequence: &mut S, ) -> Result<(), Error>
Creates new
Method
instance and applies it to the sequence
.Auto Trait Implementations§
impl Freeze for Integral
impl RefUnwindSafe for Integral
impl Send for Integral
impl Sync for Integral
impl Unpin for Integral
impl UnwindSafe for Integral
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