Trait VecFloatExt

Source
pub trait VecFloatExt {
    // Required methods
    fn vecadd(&mut self, x: &[f64], c: f64);
    fn vecdot(&self, other: &[f64]) -> f64;
    fn veccpy(&mut self, x: &[f64]);
    fn vecncpy(&mut self, x: &[f64]);
    fn vecdiff(&mut self, x: &[f64], y: &[f64]);
    fn vecscale(&mut self, c: f64);
    fn vec2norm(&self) -> f64;
    fn vec2norminv(&self) -> f64;
    fn vecdist_squared(&self, other: &[f64]) -> f64;

    // Provided method
    fn vecdist(&self, other: &[f64]) -> f64 { ... }
}
Expand description

Abstracting simple vector based math operations

Required Methods§

Source

fn vecadd(&mut self, x: &[f64], c: f64)

y += c*x

Source

fn vecdot(&self, other: &[f64]) -> f64

vector dot product s = x.dot(y)

Source

fn veccpy(&mut self, x: &[f64])

y = z

Source

fn vecncpy(&mut self, x: &[f64])

y = -x

Source

fn vecdiff(&mut self, x: &[f64], y: &[f64])

z = x - y

Source

fn vecscale(&mut self, c: f64)

y *= c

Source

fn vec2norm(&self) -> f64

||x||, L2 norm

Source

fn vec2norminv(&self) -> f64

1 / ||x||

Source

fn vecdist_squared(&self, other: &[f64]) -> f64

d = ||a-b||^2

Provided Methods§

Source

fn vecdist(&self, other: &[f64]) -> f64

d = ||a-b||

Implementations on Foreign Types§

Source§

impl VecFloatExt for [f64]

Source§

fn vecadd(&mut self, x: &[f64], c: f64)

y += c*x

Source§

fn vecdot(&self, other: &[f64]) -> f64

s = y.dot(x)

Source§

fn vecscale(&mut self, c: f64)

y *= c

Source§

fn veccpy(&mut self, x: &[f64])

y = x

Source§

fn vecncpy(&mut self, x: &[f64])

y = -x

Source§

fn vecdiff(&mut self, x: &[f64], y: &[f64])

z = x - y

Source§

fn vec2norm(&self) -> f64

||x||, L2 norm

Source§

fn vec2norminv(&self) -> f64

1/||x||

Source§

fn vecdist_squared(&self, other: &[f64]) -> f64

d = ||a-b||^2

Implementors§