8 个版本
0.2.0 | 2023年4月22日 |
---|---|
0.1.7 | 2023年3月27日 |
0.1.5 | 2021年5月21日 |
0.1.4 | 2020年7月13日 |
0.1.0 | 2018年11月30日 |
#914 in 算法
每月下载量28
675KB
9K SLoC
bex : 二元表达式工具包
Bex 是一个用于处理二元(布尔)表达式的 rust crate。
该 crate 允许您通过处理单个 Bit 结构体或类似整数的向量来构建复杂的抽象语法树(AST)。
您还可以通过将它们转换为各种规范表示来“解决”这些 AST 结构
- 简化、有序、二元决策图(ROBDD) -- 由 if-then-else 三元组组成的范式,本质上类似于压缩的真值表
- 代数范式 -- “与的异或”多项式形式
- (未来还将推出更多功能)
视频介绍
J 和 Bex 对比 Primorial 15 是关于将“简单”的分解问题转换为布尔表达式,并用 bex 解决它们。
它涵盖了 examples/solve/bdd-solve.rs 中的大分解问题以及 src/solve.rs 中的较小测试。
0.2.0 版本变更
这里的主要变化是 BddBase
现在比以前快 100 倍,具体取决于您的 CPU 核心数。
BddSwarm
结构已经被重写,利用了 swarm
模块,并且还提取了 wip::WorkState
来跟踪并发工作操作之间的依赖关系。
有关完整的变更日志,请参阅 CHANGELOG.md。
依赖项
~2.6–8.5MB
~57K SLoC