# Peroxide-ad Automatic differentiation toolbox for [Peroxide](https://github.com/Axect/Peroxide) ## Usage Modify your `Cargo.toml` as follows. ```toml [dependencies] peroxide = "0.30" ``` ## Useful macros * `#[ad_function]` macro generates `{}_grad`, `{}_hess` from `Fn(f64) -> f64` automatically. * `{}_grad` : gradient of function `{}` * `{}_hess` : hessian of function `{}` ```rust #[macro_use] extern crate peroxide; use peroxide::fuga::*; fn main() { f(2f64).print(); // x^3 = 8 f_grad(2f64).print(); // 3 * x^2 = 12 f_hess(2f64).print(); // 6 * x = 12 } #[ad_function] // generates f_grad, f_hess fn f(x: f64) -> f64 { x.powi(3) // x^3 } ```