3个版本 (1个稳定版)
使用旧的Rust 2015
1.0.0 | 2021年9月14日 |
---|---|
0.1.1 | 2021年8月9日 |
0.1.0 | 2015年6月17日 |
#1415 在 Rust模式
用于 cudd
91KB
2K SLoC
CUDD库的Rust绑定
本crate提供了对科罗拉多大学决策图包(CUDD)的不安全Rust绑定,包括DDDMP序列化库。它使用从非官方Github镜像获取的CUDD 3.0.0版本,并在Linux和MacOS上编译(您也应该能够在Windows上使用cygwin构建CUDD,但项目尚未设置自动完成)。
在Linux和macOS上,您最好安装
autoconf
、automake
和libtool
来构建CUDD。当然,还需要一些C/C++编译器(如clang
、gcc
等)。
在根模块中,您将找到整个CUDD中使用的C结构和类型的声明。CUDD包的主要API随后在::cudd
中导出。然而,CUDD还包括其他“公共”功能(多路分支树、扩展双精度数、序列化等),这些功能可以在其他模块中找到。
在某些情况下,有一些无法直接导出到Rust的宏和常量定义。这些已经重新实现,并应有自己的文档。对于未更改而重新导出的函数,请参阅原始的CUDD doxygen和手册。DDDMP库的文档可在此处找到。
完整性: 应在此处完全重现主要的CUDD API(除了与f128
数字相关的一个小问题)。剩余的模块可能仍然不完整:如果您需要尚未导出的函数,请在问题中告知我们。
正确性:不幸的是,CUDD 不能使用 bindgen
处理,因此 API 使用半自动化方法并添加手动验证步骤(一系列由人类确保不会破坏任何东西的正则表达式)进行了重现。因此,可能存在一些需要解决的细微问题。如果您发现任何意外的行为或段错误,请提交一个问题。
依赖项
约230KB