third_partial_derivative_vec

Function third_partial_derivative_vec 

Source
pub fn third_partial_derivative_vec<G, T: DualNum<F>, F, O: Mappable<HyperHyperDual<T, F>>>(
    g: G,
    x: &[T],
    i: usize,
    j: usize,
    k: usize,
) -> O::Output<(T, T, T, T, T, T, T, T)>
where G: Fn(&[HyperHyperDual<T, F>]) -> O,
Expand description

Calculate the third partial derivative of a scalar function with arbitrary many variables.

let fun = |x: &[HyperHyperDual64]| x[0].powi(3)*x[1].powi(2);
let (f, dfdx, dfdy, dfdz, d2fdxdy, d2fdxdz, d2fdydz, d3fdxdydz) = third_partial_derivative_vec(fun, &[1.0, 2.0], 0, 0, 1);
assert_eq!(f, 4.0);
assert_relative_eq!(dfdx, 12.0);
assert_relative_eq!(dfdy, 12.0);
assert_relative_eq!(dfdz, 4.0);
assert_relative_eq!(d2fdxdy, 24.0);
assert_relative_eq!(d2fdxdz, 12.0);
assert_relative_eq!(d2fdydz, 12.0);
assert_relative_eq!(d3fdxdydz, 24.0);