#diagram #decision #bindings #build #tree #cudd #cu

sys cudd-sys

CU Decision Diagram库(CUDD)的绑定

3个版本 (1个稳定版)

使用旧的Rust 2015

1.0.0 2021年9月14日
0.1.1 2021年8月9日
0.1.0 2015年6月17日

#1415Rust模式


用于 cudd

CC0 许可证

91KB
2K SLoC

Crates.io Api Docs Continuous integration

CUDD库的Rust绑定

本crate提供了对科罗拉多大学决策图包(CUDD)的不安全Rust绑定,包括DDDMP序列化库。它使用从非官方Github镜像获取的CUDD 3.0.0版本,并在Linux和MacOS上编译(您也应该能够在Windows上使用cygwin构建CUDD,但项目尚未设置自动完成)。

在Linux和macOS上,您最好安装autoconfautomakelibtool来构建CUDD。当然,还需要一些C/C++编译器(如clanggcc等)。

在根模块中,您将找到整个CUDD中使用的C结构和类型的声明。CUDD包的主要API随后在::cudd中导出。然而,CUDD还包括其他“公共”功能(多路分支树、扩展双精度数、序列化等),这些功能可以在其他模块中找到。

在某些情况下,有一些无法直接导出到Rust的宏和常量定义。这些已经重新实现,并应有自己的文档。对于未更改而重新导出的函数,请参阅原始的CUDD doxygen手册。DDDMP库的文档可在此处找到。

完整性: 应在此处完全重现主要的CUDD API(除了与f128数字相关的一个小问题)。剩余的模块可能仍然不完整:如果您需要尚未导出的函数,请在问题中告知我们。

正确性:不幸的是,CUDD 不能使用 bindgen 处理,因此 API 使用半自动化方法并添加手动验证步骤(一系列由人类确保不会破坏任何东西的正则表达式)进行了重现。因此,可能存在一些需要解决的细微问题。如果您发现任何意外的行为或段错误,请提交一个问题。

依赖项

约230KB