8 releases
0.3.0 | Jan 25, 2021 |
---|---|
0.2.1 | Jan 12, 2021 |
0.1.4 | Aug 1, 2020 |
0.1.3 | Jul 31, 2020 |
#51 in #numerical
20,695 downloads per month
Used in 20 crates
(via peroxide)
42KB
138 lines
Peroxide-ad
Automatic differentiation toolbox for Peroxide
Usage
Modify your Cargo.toml
as follows.
[dependencies]
peroxide = "0.30"
Useful macros
#[ad_function]
macro generates{}_grad
,{}_hess
fromFn(f64) -> f64
automatically.{}_grad
: gradient of function{}
{}_hess
: hessian of function{}
#[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
}
Dependencies
~1.5MB
~37K SLoC