Crate cagra [−] [src]
Examples
Create a graph for (x + y) - z
use cagra::graph::*; let mut g: Graph<f64> = Graph::new(); // x = 1.0 let x = g.scalar_variable("x", 1.0); // y = 2.0 let y = g.scalar_variable("y", 2.0); // tmp = x + y let tmp = g.add(x, y); // z = -3.0 let z = g.scalar_variable("z", -3.0); // sum = tmp - z let sum = g.sub(tmp, z); g.eval_value(sum, false).unwrap(); let result = g.get_value(sum).unwrap().as_scalar().unwrap(); assert!((result - 6.0).abs() < 1e-7); g.eval_deriv(sum).unwrap(); let dx = g.get_deriv(x).unwrap().as_scalar().unwrap(); let dy = g.get_deriv(y).unwrap().as_scalar().unwrap(); let dz = g.get_deriv(z).unwrap().as_scalar().unwrap(); assert!((dx - 1.0).abs() < 1e-7); assert!((dy - 1.0).abs() < 1e-7); assert!((dz + 1.0).abs() < 1e-7);
Modules
error |
Errors in cagra |
graph |
Calculation graph |
operators |
Value and operators in calculation graph |