3 个版本
0.1.2 | 2021 年 3 月 1 日 |
---|---|
0.1.1 | 2021 年 2 月 28 日 |
0.1.0 | 2021 年 2 月 28 日 |
#1435 in 数学
39 次每月下载
在 3 个包中使用(通过 marigold-grammar)
21KB
268 行
rusymbols
注意
生成的包架构与主要思想不符,因此将进行审查和重组。请等待更稳定的版本。
关于
rusymbols 是一个用于符号数学的 Rust 包。它旨在成为一个功能齐全的计算机代数系统 (CAS),同时尽量保持代码简单,以便于理解和易于扩展。rusymbols 完全用 Rust 编写。
(也许有些工程师想学习 Rust :))
该包旨在支持 Rust 语言,并以 Rust 的速度添加处理复杂公式的功能,可能比没有高级抽象的程序慢。不要考虑它们的解决方案,尤其是那些根据情况变化的公式。项目的目标是至少与 SymPy 相似。
主要思想
- Simple.
- Fast (maybe not at maximum speed, but still fast)
- Safe
- Universal (compatibility with nalgebra and standard types (possibly) and other similar crates)
如何使用
Just use it! The main idea is simplicity. Enjoy!
示例
use rusymbols::Expression;
use std::collections::HashMap;
let x = Expression::new_var("x");
let two = Expression::new_val(2.0);
let polynomial = x.clone().pow(two.clone()) - x + two;
let mut args: HashMap<&str, f64> = HashMap::new();
args.insert("x", 1.0);
assert_eq!(polynomial.to_string(), "x**2 - x + 2");
assert_eq!(polynomial.eval_args(&args).unwrap(), 2.0);