Macro russell_chk::assert_deriv_approx_eq
source · [−]macro_rules! assert_deriv_approx_eq {
($dfdx:expr, $at_x:expr, $f:expr, $args:expr, $tol:expr) => { ... };
}
Expand description
Asserts that derivatives have approximately equal values
Input
dfdx: f64
– derivative of f with respect to x at a given xat_x: f64
– location for the derivative of f(x, {arguments}) w.r.t xf: fn(f64, &A) -> f64
– functionf(x: f64, args: &A)
tol: f64
– Error tolerance such that|dfdx - dfdx_num| < tol
Examples
Accepts small error
struct Arguments {}
let f = |x: f64, _: &mut Arguments| -x;
let args = &mut Arguments {};
let at_x = 8.0;
let dfdx = -1.01;
assert_deriv_approx_eq!(dfdx, at_x, f, args, 1e-2);
Panics due to tighter tolerance
ⓘ
struct Arguments {}
let f = |x: f64, _: &mut Arguments| -x;
let args = &mut Arguments {};
let at_x = 8.0;
let dfdx = -1.01;
assert_deriv_approx_eq!(dfdx, at_x, f, args, 1e-3);