2个不稳定版本

0.2.0 2018年12月6日
0.1.0 2017年9月25日

#18 in #petgraph


cagra-parser中使用

MIT许可证

18KB
398

cagra

docs.rs Build Status

计算图库


lib.rs:

cagra

小型CAlculation GRAph库

特性

  • 无前端和无后端。
  • 基于petgraph的邻接表图
  • 使用serde序列化

示例

z = (x + y) - 2*x*y创建一个图

use cagra::graph::*;

let mut g: Graph<f64> = Graph::new();
let x = g.variable("x", 1.0).unwrap();
let y = g.variable("y", 3.0).unwrap();
let x_y = g.add(x, y);
let xy  = g.mul(x, y);
let a   = g.constant(2.0);
let axy = g.mul(a, xy);
let sum = g.sub(x_y, axy);

let result = g.eval_value(sum).unwrap();
abs_diff_eq!(result, -2.0);

g.eval_deriv(sum);
let dx = g.get_deriv(x).unwrap();
let dy = g.get_deriv(y).unwrap();
abs_diff_eq!(dx, -5.0);
abs_diff_eq!(dy, -1.0);

依赖

~2.3–3.5MB
~61K SLoC