[][src]Macro fwd_ad::generate_duals

macro_rules! generate_duals {
    {$($varname:ident = $value:expr; $(@ $gettername:ident)?)*} => { ... };
}

Generate n duals (backed by Vec) with n derivatives, one for each varable.

Can optionally generate a "getter" closure used to get the derivative with respect to the variable.

Examples

generate_duals!{
    // getdx will get derivatives wrt. x
    x = 17.; @ getdx
    // no getter for y
    y = 42.;
}
assert_eq!(getdx(x.view()), 1.);
assert_eq!(getdx(y.view()), 0.);
assert_eq!(x, Dual::<Vec<f64>,RW, f64>::from(vec![17.,1.,0.]));
assert_eq!(y, Dual::<Vec<f64>,RW, f64>::from(vec![42.,0.,1.]));