extern crate peroxide; use peroxide::fuga::*; fn main() { let a = AD1(2f64, 1f64); a.print(); let a2 = a.to_order(2); let b = AD2(4f64, 4f64, 2f64); b.print(); (a + b).print(); (a - b).print(); (a * b).print(); (a / b).print(); (a2 / b).print(); a.exp().print(); a.ln().print(); b.exp().print(); b.ln().print(); a.powi(2).print(); b.sqrt().print(); b.cos().print(); b.sin().print(); b.cosh().print(); b.sinh().print(); f(a, b).print(); (b + 1f64).print(); (b - 1f64).print(); (b * 2f64).print(); (b / 2f64).print(); assert_eq!(-(1f64 - b), b - 1f64); assert_eq!(2f64 * b, b * 2f64); assert_eq!(1f64 / (2f64 / b), b / 2f64); } fn f(a: AD, b: AD) -> AD { a + b }