内容
wires 计算引擎
一个用于 Rust 中数学和科学计算的综合计算引擎,提供 **400+ 数学运算**,通过一个干净的 **8 工具 API**。
[](https://github.com/nightness/brainwires-compute-engine)
[](https://github.com/nightness/brainwires-compute-engine)
[](https://www.rust-lang.org/)
## 🚀 快速开始
```rust
use computational_engine::{ToolRequest, SolveInput, create_default_dispatcher};
// 创建调度器
let dispatcher = create_default_dispatcher();
// 求解二次方程
let request = ToolRequest::Solve(SolveInput {
equations: vec!["x^2 + 2*x - 8 = 0".to_string()],
variables: None,
initial_guess: None,
domain: None,
method: None,
..Default::default()
});
let response = dispatcher.dispatch(request).unwrap();
println!("{:#?}", response);
```
## 🧮 8 个核心工具
| 工具 | 目的 | 示例操作 |
|------|---------|-------------------|
| **求解** | 方程与优化 | 多项式、线性系统、微分方程、爱因斯坦场方程、曲线拟最小化 |
| **计算** | 数学与物理计算 | 矩阵运算、微积分(求导/积分)、变换(FFT、拉普拉斯)、场论(电磁学、重力)、采样、张量微积分、特殊函数 |
| **分析** | 表达式分析 | 级数展开、极限、根、极值分析、简化 |
| **模拟** | 动态系统 | 常微分方程、偏微、随机过程、蒙特卡罗、流学 |
| **机器学习** | 机器学习 | 聚类-means)、回归、、主成分分析维 |
| **** | 理论 | 分形(Mandelbrot)、吸引子()、李亚普诺夫指数、分叉 |
单位** | 量纲分析 | 单位转换、量纲一致性检查 |
| **验证** | 方程验证 | 物理合规性、守恒定律、对称性检查 |
## ✨ 主要特点
### 核心能力
- ✅ **2,067 测试**,100% 通过率(1,089 集成测试 + 960 单元 18 文档测试)
- ✅ **约 生产代码覆盖率**(使用 cargo-tarpaulin)
- ✅ **400+ 数学运算**,涵盖 8 个统一工具
- ✅ **自适应积分**,带有自动细分和误差估计
- ✅ **24+ 传统数学主题**,包括微积分、线性代数、统计学、微分方程、图论、优化等
- ✅ **自定义计算机代数系统(CAS)** - 无 Python 依赖
- ✅ **多个接口**:原生 Rust、JSON/MCP、WebAssembly
- ✅ **Rust 2024 版本**,具有完全的类型安全性
### 数学
- **微积分**:符号求导、积分、级数分析
- **线性代数**运算、分解(、LU、QR、Cholesky)、特征值、主成分分析
- **张量微积分**:爱因斯坦求和、克里斯托费尔符号、黎曼曲率、度量张量
- **符号 CAS**:表达式解析、简化、符号求导/积分
- **特殊函数**:贝塞尔、伽马、贝塔、误差函数、椭圆积分、正交多项式
- **数值方法**:根查找、插值、常微分方程/偏微分方程求解器、自适应数值积分(辛普森规则,带有自动细分)
### 物理学
- **量子力学**:波函数、算符、微扰理论
- **相对论**:狭义和广义相对论计算
- **电磁学**:麦克斯韦方程、电磁波、天线、波导
- **核物理**:放射性衰变、结合能、裂变/聚变
- **流体动力学**:纳维-斯托克斯求解器、边界条件、流动分析
- **控制系统**:传递函数、稳定性分析、PID 调整
### 科学公式
- **化学**:气体定律、pH 计算、摩尔质量、热化学
- **生物学**:米氏动力学、哈代-温伯格平衡、药代动力学
- **热力学**:热传递、熵、热力学循环
- **光学**:薄透镜、衍射、干涉、偏振
- **工程学**:声学、材料科学、流体力学、控制理论
- **地球物理**:地震学、大气物理、放射性测年、行星科学
- **日期时间**:日期算术、工作日、闰年、时区
### 专用模块
- **信号处理**:FFT、滤波器、频谱图、小波、窗口函数
- **统计**:分布、假设检验、回归、MCMC **优化**:梯度下降、Nelder-Mead、曲线拟合、符号回归
- **图论**短路径、最小生成树、连通分量、拓扑排序
- **信息论**:熵、互信息、信道容量、霍夫曼编码
- **密码学**:RSA、素数生成、模数运算
- **计算几何**:凸包、德三角化、沃罗诺伊图
## 📚 涵盖的传统数学主题
该引擎涵盖 **24传统数学主题**,熟悉教育工作者和学生:
###
- **微分学** - 符号求导、偏导数、链式法则、梯度、散度、旋度
- **积分学** - 定积分/不定积分、重积分、围道积分
- **高级微积分** - 泰勒级数、极限、洛法则敛性测试
- **线性代数** - 矩阵运算、分解(SVD、QR、LU、)、特征值、主成分分析
- **符号代数** - 表达式解析、简化、因式分解、多项式运算
- **微分方程** - 常微分方程、偏微分方程(热方程、波动方程、拉普拉斯方程)、刚性方程
### 高级纯数学
- **微积分** - 克里斯托费尔符号、黎曼张量、爱因斯坦方程、度量张- **数论** - 素数、模数运算、最大公约数/最小公倍数、中国剩余定理
- **特殊函数** - 贝塞尔、伽马、误差函数、椭圆积分、正交多项式
- **计算几何** - 凸包、德劳内三角化、沃罗诺伊图
### 应用数学
- **统计与概率** - 分布、假设检验、回归、方差分析、相关性
- **优化** - 梯度下降、Nelder-Mead、曲线拟合、符号回归
- **随机过程** - 布朗运动、泊松过程、列维过程、MCMC **图论** - 最短路径、最小生成树、拓扑排序、连通分量
- **信息论** - 熵、互信息、KL 散度、信道容量
### 信号与变换分析
- **傅里叶分析** - FFT、傅里叶/拉普拉斯变换、叶级数
- **小波分析** - Haar、Daubechies、Morlet 小波、小波变换
- **信号处理** - 数字滤波器、谱分析、自相关、功率谱
### 物理数学
- **量子力学** - 薛定谔方程、微扰理论、波函数
- **相对论** - 洛伦兹变换、施瓦茨柴尔德度量、引力效应
- **统计物理** - 配分函数、玻尔兹曼/费米-狄拉克/玻色-爱因斯坦分布
- **控制理论** - 传递函数、波德图、稳定性分析、状态空间
- **核物理** - 放射性衰变、结合能、裂变/聚变计算
### 密码学与安全
- **密码学数学 RSA、哈希(SHA256/SHA3)、离散对数、椭圆曲线
## 📦 安装
在 `Cargo.toml` 中添加:
```toml
[dependencies]
brainwires-compute-engine = { git = "https://github.com/nightness/brainwires-compute-engine" }
```
## 🔧 多个接口
### 1. Rust API(原生)
直接 Rust 集成,具有完全的类型安全性:
```rust
use computational_engine::{ToolRequest, ComputeInput, ComputeOp, DifferentiateType, create_default_dispatcher};
let dispatcher = create_default_dispatcher();
// 符号化求导 x^2*sin(x)
let request = ToolRequest::Compute(ComputeInput {
operation: ComputeOp::Differentiate(DifferentiateType::Symbolic),
data: serde_json::json!({
"expression": "x^2*sin(x)",
"variable": "x"
}),
parameters: Default::default(),
});
let response = dispatcher.dispatch(request).unwrap();
```
### 2. JSON API(MCP 服务器)
用于 AI 代理和 CLI 工具的 JSON 接口:
```bash
# 作为 MCP 服务器运行(从 stdin 读取 JSON)
echo '{"tool":"solve","input":{"equations":["x^2 - 4 = 0"]}}' | cargo run --release -- stdin
# 列出可用操作
cargo run --release -- list
#信息
cargo run --release -- info
```
JSON:
```json
{
" "solve",
"input": {
equations": ["x^2 - 40"]
}
}
```
### 3. WebAssembly(浏览器/Node.js)
在 JavaScript/Type用于设备计算:
```javascript
import { ComputationalEngine } from '@brainwires/compute-engine';
await init();
const engine = new ComputationalEngine();
const result = engine.solve({
equations: ["x^2 - 4 = 0"]
});
console.log(result);
```
查看 [WASM.md](WASM.md) 以获取完整的 WebAssembly 文档。
## 🏗️ 架构
具有 8 个统一工具的干净分层架构:
```
JSON/WASM API → ToolDispatcher → Tool Traits → Unified Implementations → Domain Modules
```
### 源代码结构
```
src/
├── engine/ # 核心类型、特征、调度器
├── solve/ # SOLVE 工具 + 优化/、专用/
├── compute/ # COMPUTE 工具 + 27 个领域子模块
├── analyze/ # ANALYZE 工具 + 符号/
├── simulate/ # SIMULATE 工具 + 流体/、随机/、ode/、金融/
├── ml/ # ML 工具 + 聚类/、回归/、神经网络/等
├── chaos/ # CHAOS 工具 + 分形/、吸引子/、李亚普诺夫/等
├── units/ # UNITS 工具 + 量纲分析
└── validate/ # VALIDATE 工具 + 方程验证
```
查看 [ARCHITECTURE.md](ARCHITECTURE.md) 以获取详细的架构文档。
## 🔬 构建与测试
### 原生构建
```bash
# 构建库和 CLI
cargo build --release
# 运行 MCP 服务器
./target/release/brainwires-compute-engine stdin
# 运行所有测试(共 2,067 个测试)
cargo test
# 仅运行集成测试
cargo test --testtegration_tests
# 运行特定测试套件
cargo test --test all_tests integration::linear_algebra
cargo test --test all_integration_tests integration::tensor_c# 生成文档
cargo doc --open
# 代码质量
cargo check
cargo fmt
cargo clippy
```
### WebAssembly 构建
```bash
# 为所有 WASM 目标构建
./build-wasm.sh
# 或构建特定目标
npm run build:web # 浏览器 ES 模块
npm run build:nodejs # Node.js
npm run build:bundler # Webpack/Vite/Rollup
npm run build:no-modules # 经典 <script> 标签
# 运行浏览器示例
cd examples/wasm && npm run dev
# 运行 Node.js 示例
cd examples/wasm && npm run node
# 测试 WASM
wasm-pack test --headless --firefox
```
查看 [WASM.md](WASM.md) 以获取详细的 WASM 构建说明。
## 📊 测试覆盖率
具有 **100% 通过率** 和 **约 80% 生产代码覆盖率** 的综合测试套件:
### 测试统计
- **2,067 个总测试**(100% 通过率)
- **1,089 个集成测试** 在 `tests/integration/` 目录中
- **960 个单元测试**(内联 `#[cfg(test)]` 模块在 `src/` 中)
- **18 个文档测试**
- **约 80% 生产代码覆盖率**(截至 2025 年 1 月为 79.99%)
- 使用 `cargo-tarpaulin`,排除测试代码
- 仅生产代码,内联测试模块自动排除
### 覆盖率命令
```bash
# 运行所有测试
cargo test
# 获取生产代码覆盖率(推荐 - 排除测试代码)
cargo tarpaulin --lib --release --out Stdout
# 替代:cargo-llvm-cov(可能包括测试代码中的指标)
cargo llvm-cov --lib --release
# 生成 HTML 覆盖率报告
cargo tarpaulin --lib --release --out Html
```
**注意:** 使用 `cargo-tarpaulin` 获取准确的生产代码覆盖率。该工具自动排除内联 `#[cfg(test)]` 模块的覆盖率计算,提供真正的生产代码覆盖率百分比。
### 测试组织
该项目使用两种测试模式:
1. **集成测试**(`tests/integration/` 目录)
- 1,089 个集成测试,跨多个文件
- 按工具组织:`engine/`、`compute/`、`solve/`、`simulate/`、`tools/`、`coverage/`
- 测试公共 API 和端到端功能
2. **单元测试**(内联 `#[cfg(test)]` 模块)
- 960 个单元测试嵌入在源文件中
- 位于 `#[cfg(test)]` 模块中,位于 `src/` 文件中
- 测试单个函数和内部实现细节
查看 [TESTING.md](TESTING.md) 以获取详细的测试指南和最佳实践。
## 🎯 用例
- **科学计算**:研究计算、模拟、数据分析
- **AI/ML 应用**:AI 代理和模型的数学运算
- **教育工具**:交互式数学和物理教育
- **MCP 服务器**:Claude 和其他 AI 助手的计算后端
- **Web 服务**:服务器端或客户端数学计算
- **研究**:数学模型的快速原型设计
- **工程**:CAD、模拟、优化问题
## 📖 文档
- **[.md](TESTING.md)** - 🧪 **完整的测试指南和最佳实践**
-UDE.md](CLAUDE.md)** - 🤖 **Claude Code 和贡献者的开发指南**
- [WASM.md](WASM.md) - WebAssembly 构建和使用指南
- [ARCHITECTURE.md](ARCHITECTURE.md) - 详细的架构文档
- API 文档:`cargo doc --open`
## 🛠️ 开发
### 前提条件
- Rust 1.75+(2024 版)
- wasm-pack(用于 WebAssembly 构建)
- Node.js 18+(用于 WASM 示例)
### 开发命令
```bash
# 检查代码
cargo check
# 运行测试
cargo test
# 格式化cargo fmt
# 静态分析
cargo clippy
# 构建发布版本
cargo build --release
# 运行基准测试
cargo bench
```
## 🌟 设计哲学
- **简单性**:8 个直观的工具,提供对 400+ 数学运算的访问
- **全面性**:涵盖 24+ 传统数学主题,从微积分和线性代数到量子力学和控制理论
- **自包含性**:自定义 CAS,无 Python 依赖
- **类型安全性**:完整的 Rust 类型检查,零成本抽象
- **性能**:使用 LTO 和单个代码生成单元优化发布构建
- **可测试性**:2,067 个测试,100% 通过率
- **灵活性**:具有合理默认值的丰富输入模式
- **互操作性**:原生 Rust、JSON 和 WebAssembly 接口
## 🆕 最近更新
### 2025 年 1 月
- ✅ **8 工具架构整合**:具有 8 个主要工具的统一架构
- 更干净、更直观的 API
- ✅ **测试重组**:测试现在镜像源结构
- `tests/unit/` 按工具组织:`solve/`、`compute/`、`analyze/`、`simulate/`、`ml/`、`chaos/`、`units/`、`validate/`
- `tests/integration/` 按工具组织:`engine/`、`compute/`、`solve/`、`simulate/`、`tools/`、`coverage/`、`other/`
- 总计:2,067 个测试(比 1,685 个增加)
### 2024 年 10 月
- ✅ **主要测试覆盖率改善**:测试数量显著增加
- 实现了 **约 80% 的生产代码覆盖率**
- 修复了黑洞物理中关于自旋参数解释的严重错误
- 创建了全面的 [TESTING.md](TESTING.md) 指南
- ✅ **黑洞物理修复**:修正了 Kerr 黑洞实现
- 将自旋参数从质量单位更改为无量纲(0-1)
- 修复了事件视界、能层和 ISCO 计算
## 📝 许可证
MIT OR Apache-2.0
## 🤝 贡献
欢迎贡献!8 工具架构使得以下操作变得容易:
1. 向现有工具添加新的求解方法
2. 实现新的分析操作
3. 创建新的模拟模型
4. 添加科学公式模块
5. 集成专用库
查看 `src/solve/`、`src/compute/` 等目录中的工具模块以获取示例。
## 🙏 致谢
该项目旨在提供与 Mathematica/Wolfram Alpha 相当的综合计算能力,但作为免费和开源软件。
## 📞 支持
- 问题:[GitHub 问题](https://github.com/nightness/brainwires-compute-engine/issues)
- 文档:查看 `docs/` 目录和内联文档
---
**使用 Rust 🦀 构建 | 数学支持 📐 | 严格测试 ✅**