1 2 3 4 5 6 7 8 9 10 11 12 13
pub trait CostFunction { type Param; type Output; fn cost(&self, param: &Self::Param) -> Self::Output; } pub trait Gradient { type Param; type Gradient; fn gradient(&self, param: &Self::Param) -> Self::Gradient; }