#math-expressions #arithmetic-operations #expression #expr #instance #evaluation #evaluate

bin+lib symbolic_math

一个用于执行符号数学的 Rust 库。支持基本的算术运算、表达式简化、展开和评估。

2 个版本

0.1.2 2024 年 3 月 19 日
0.1.1 2023 年 8 月 1 日
0.1.0 2023 年 8 月 1 日

#550 in 数学

Download history 70/week @ 2024-06-17 26/week @ 2024-06-24 10/week @ 2024-07-01

78 每月下载量

MIT 许可证

31KB
482

Symbolic_Math

symbolic_math 是一个 Rust 库,它简化了数学表达式的表示和操作。该库提供了用于建模各种数学运算(包括加法、减法、乘法、除法和指数运算)的结构。这些表达式可以包含常数、符号或其他复杂表达式。此外,它还提供了评估和简化这些表达式的工具。

主要组件

  • Expr:表示不同类型数学表达式的枚举。
  • Symbol:表示符号变量的结构。

此库还为 Expr 提供了几个实现,包括

  • 创建 Expr 实例的新实例的构造函数。
  • Expr 实例转换为字符串的 Display 实现。
  • 简化 Expr 实例的 simplify 方法。
  • 基本展开 Expr 实例的 expand 方法。
  • 评估 Expr 实例的 eval 方法。

包含对 Expr 的操作符重载的 operators 模块,使用标准数学运算符组合 Expr 实例。

使用方法

要将 symbolic_math 包含到您的项目中,请将以下内容添加到您的 Cargo.toml

[dependencies]
symbolic_math = "0.1.1"

然后您可以在代码中使用它如下

use symbolic_math::expr::Expr;
use symbolic_math::symbol::Symbol;
use std::collections::HashMap;

let x = Expr::new_var("x");
let y = Expr::new_var("y");
let z = Expr::new_var("z");
let res = (x.clone() + x.clone() + y.clone() * y.clone()).pow(z);
println!("{}", res);  // prints: "(2x + y^2)^z"
println!("{}", res.simplify());  // prints: "(2x + y^2)^z"

let mut vars: HashMap<Symbol, f64> = HashMap::new();
vars.insert(Symbol::new("x"), 4.0);
vars.insert(Symbol::new("y"), 3.0);
vars.insert(Symbol::new("z"), 2.0);
println!("{}", res.eval(&vars).unwrap()); // prints: "289"

有关如何使用 symbolic_math 的更详细信息,请参阅每个类型和方法的相关文档。

无运行时依赖