LbfgsMath

Trait LbfgsMath 

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

Abstracting lbfgs required math operations

Required Methods§

Source

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

y += c*x

Source

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

vector dot product s = x.dot(y)

Source

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

y = z

Source

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

y = -x

Source

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

z = x - y

Source

fn vecscale(&mut self, c: T)

y *= c

Source

fn vec2norm(&self) -> T

||x||

Source

fn vec2norminv(&self) -> T

1 / ||x||

Implementations on Foreign Types§

Source§

impl LbfgsMath<f64> 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||

Source§

fn vec2norminv(&self) -> f64

1/||x||

Implementors§