#diagram #bdd #syntax-tree #ast #anf

bin+lib bex

A rust 库,用于处理布尔表达式(语法树、决策图、代数范式等)

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

MIT 许可证

675KB
9K SLoC

Rust 5K SLoC // 0.1% comments Vue 3.5K SLoC // 0.0% comments Python 146 SLoC // 0.4% comments Jupyter Notebooks 39 SLoC // 0.4% comments

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