Skip to main content

DaVector

Trait DaVector 

Source
pub trait DaVector {
    // Required methods
    fn cons(&self) -> Vec<f64>;
    fn linear(&self) -> Vec<Vec<f64>>;
    fn deriv(&self, var: u32) -> Vec<Da>;
    fn integ(&self, var: u32) -> Vec<Da>;
    fn eval(&self, args: &[f64]) -> Vec<f64>;
    fn plug(&self, var: u32, val: f64) -> Vec<Da>;
    fn trim(&self, min_order: u32, max_order: u32) -> Vec<Da>;
    fn invert(&self) -> Vec<Da>;
}
Expand description

Elementwise operations on vectors of DAs (C++ AlgebraicVector<DA>).

Required Methods§

Source

fn cons(&self) -> Vec<f64>

Elementwise constant parts.

Source

fn linear(&self) -> Vec<Vec<f64>>

The linear-part matrix (row per component, column per variable).

Source

fn deriv(&self, var: u32) -> Vec<Da>

Elementwise derivative with respect to variable var (1-based).

Source

fn integ(&self, var: u32) -> Vec<Da>

Elementwise integral with respect to variable var (1-based).

Source

fn eval(&self, args: &[f64]) -> Vec<f64>

Elementwise evaluation at a point.

Source

fn plug(&self, var: u32, val: f64) -> Vec<Da>

Elementwise partial evaluation of variable var (1-based).

Source

fn trim(&self, min_order: u32, max_order: u32) -> Vec<Da>

Elementwise trim to orders min_order..=max_order.

Source

fn invert(&self) -> Vec<Da>

Invert the polynomial map (C++ AlgebraicVector<DA>::invert).

§Panics

Panics with crate::DaceError when the vector dimension exceeds the number of DA variables or the linear part is singular.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl DaVector for Vec<Da>

Source§

fn cons(&self) -> Vec<f64>

Source§

fn linear(&self) -> Vec<Vec<f64>>

Source§

fn deriv(&self, var: u32) -> Vec<Da>

Source§

fn integ(&self, var: u32) -> Vec<Da>

Source§

fn eval(&self, args: &[f64]) -> Vec<f64>

Source§

fn plug(&self, var: u32, val: f64) -> Vec<Da>

Source§

fn trim(&self, min_order: u32, max_order: u32) -> Vec<Da>

Source§

fn invert(&self) -> Vec<Da>

Source§

impl DaVector for [Da]

Source§

fn cons(&self) -> Vec<f64>

Source§

fn linear(&self) -> Vec<Vec<f64>>

Source§

fn deriv(&self, var: u32) -> Vec<Da>

Source§

fn integ(&self, var: u32) -> Vec<Da>

Source§

fn eval(&self, args: &[f64]) -> Vec<f64>

Source§

fn plug(&self, var: u32, val: f64) -> Vec<Da>

Source§

fn trim(&self, min_order: u32, max_order: u32) -> Vec<Da>

Source§

fn invert(&self) -> Vec<Da>

Implementors§