pub type GradientFunction<A> = Box<dyn Fn(&Array1<A>) -> Array1<A>>;
Type alias for gradient function
pub struct GradientFunction<A>(/* private fields */);