Symbolica

Symbolica,高性能符号数学与计算机代数系统,面向先进数学计算。

Symbolica 2.0:Python 和 Rust 的可编程符号计算框架

Symbolica 2.0 发布:Python 和 Rust 符号计算框架新增"可编程符号"系统——开发者可为自定义数学符号注册求导、级数展开、数值求值等钩子函数,使其像内置函数一样自动工作。2.0 还包含 Rust API 大幅简化(构建器模式、更少导入)、JIT 编译支持、双精度浮点路径(精度约 31 位十进制,速度比任意精度快 3 倍以上)、新增 gamma/多对数/Bessel/Riemann zeta 等特殊函数、底层性能优化达 2–10000 倍。文章末尾坦诚分享了 AI 辅助开发的实验经验:AI 能加速重构和外围任务,但算法调试和关键代码仍需人工判断。适合需要符号计算或自动生成数值核的 Python/Rust 开发者阅读。
评论点赞收藏70 天前

Symbolica 1.0 发布:Rust 符号数学库

Symbolica 1.0 正式发布——一个用 Rust 编写、同时提供 Python 绑定的符号数学引擎,能像操作数字一样操作符号表达式,例如求解带参数的线性方程组。作者同时将核心功能拆分为 Numerica(高性能数论类型库:误差追踪浮点数、有限域、自动微分、矩阵运算)和 Graphica(多边图生成与规范化的图论库)两个 MIT 许可 crate,共开源 18.5k 行代码。博客深入讨论了设计决策:用命名空间+只追加的全局状态安全方案解决依赖冲突;用 pyo3 实现 Python 绑定并设计 symbolica-community 粘合层解决多模块状态隔离问题;从 Set→Ring→EuclideanDomain→Field 逐层抽象的代数类型体系。作者坦诚列举了 Rust 尚未解决的痛点(trait 互斥限制、特化缺失、ICE 编译 bug),并给出了可接受的工作区方案。适合 Rust 开发者、符号计算用户及对计算机代数系统设计感兴趣的读者,附有 Discord/Zulip 讨论入口。
评论点赞收藏264 天前

Rust 表达式求值:从朴素实现到自定义汇编的千倍提速

本文以 Symbolica 计算框架为载体,完整演示了数学表达式求值从朴素树遍历到自定义 x86_64 汇编的极致优化过程,最终实现超过 1000 倍加速。优化路线依次为:函数内联与指令线性化 → Horner 多项式优化(爬山算法寻找最优变量顺序)→ 公共子表达式消除 → 寄存器回收复用。以 LHC 对撞机实验中 4.6MB 的 F13 物理表达式(29 个参数、10.5 万项)为实测案例:原始求值 26ms,Symbolica 优化后降至 263μs(100 倍加速),编译为 C++ 后进一步压缩至 18.1μs(再快 15 倍),但 C++ 编译本身耗时 1100 秒——GCC 会自行做 CSE 和寄存器分配,甚至撤销部分手动优化。文章后半段展示如何绕过编译器直接生成汇编:手工编写 SSE2 指令实现复数乘法仅需 9 条指令,比 GCC 生成的 14 条快约 20%,并结合寄存器级分配避免内存往返。内容技术密度极高,每个优化步骤都附有代码示例和性能数据,适合对编译器、数值计算、高性能编程感兴趣的读者深入阅读。
评论点赞收藏674 天前

用符号模式匹配重新理解算法

本文展示了如何借助 Symbolica 符号计算库,将图论中的连通性检测、环计数、图同构等经典问题重新表达为纯模式匹配与替换的算法。作者把图的顶点和边编码为符号表达式中的函数与参数,利用通配符匹配和替换规则,一行代码即可判断图是否连通;再配合欧拉公式和计数器符号,通过幂次自动统计顶点数、边数、环数。图同构检测更是直接通过模式匹配生成所有可能的标签映射来完成。思路新颖,代码简洁,虽然效率不高但极具启发——重新诠释了"换个语言看问题"的威力。文中所有代码均基于 Symbolica Python 库运行,该项目对非商业业余用户免费。
评论点赞收藏731 天前

Symbolica 计算机代数系统

一款号称比 Mathematica 和 SymPy 快数十倍的 Python/Rust 计算机代数库产品页。展示了符号求导、因式分解、模式匹配和数值求值等代码示例,并给出最大公约数计算基准对比(Symbolica 4s vs Mathematica 89s vs SymPy 1h1m),性能数据有一定参考价值。但全文为官方营销文案,逐条罗列特性("Expressive API""Familiar API"等模板化卖点),无个人使用体验、踩坑记录、技术选型思考或实际工程场景分析,属于典型机构产品推广页面,缺乏讨论入口和观点表达。
评论点赞收藏830 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。