#formulas #symbols #calculations #symbolic-math

rusymbols

rusymbols 是一个用于符号数学的 Rust 包。它旨在成为一个功能齐全的计算机代数系统 (CAS),同时尽量保持代码简单,以便于理解和易于扩展。rusymbols 完全用 Rust 编写。

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

MIT/Apache

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);

无运行时依赖