pub trait DualFunction: Fn(Dual) -> Dual { }
Expand description

“Trait alias” for Dual-to-Dual functions

use autodj::*;

fn compose_dual_functions<DFnI, DFnII>(
    df_i : &DFnI,
    df_ii: &DFnII,
      arg: &f64
) -> Dual
where
    DFnI  : DualFunction,
    DFnII : DualFunction,
{
    arg.derive(df_i).derive(df_ii)
}

let square   = |var| var * var;
let plus_one = |var| var + 1.0.par();

let x = 2.;

let y = compose_dual_functions(&square, &plus_one, &x);

Implementors