2个版本
0.1.1 | 2022年3月6日 |
---|---|
0.1.0 | 2021年8月23日 |
#544 in 压缩
27KB
610 代码行
Cnfpack
Cnfpack格式的编码器和解码器。
在基于文本的DIMACS CNF文件格式和压缩的二进制Cnfpack格式之间进行转换。
格式
Cnfpack是CNF公式的压缩文件格式。将DIMACS CNF公式转换为Cnfpack格式并从Cnfpack格式转换回来时,保持子句的顺序以及子句内字词的顺序。不存储DIMACS输入中的注释、可选空白或前导零。
示例用法
# Download example instance
wget -nv https://gbd.iti.kit.edu/file/5fb0d1f02c02c6a7fb485707b637d7e4/bvsub_12973.smt2.cnf.xz
#> 2021-08-23 17:55:24 URL:https://gbd.iti.kit.edu/file/5fb0d1f02c02c6a7fb485707b637d7e4/bvsub_12973.smt2.cnf.xz [1559552/1559552] -> "bvsub_12973.smt2.cnf.xz" [1]
# Decompress `xz` file
xz -dk bvsub_12973.smt2.cnf.xz
# Convert to `cnfpack`
cnfpack bvsub_12973.smt2.cnf bvsub_12973.smt2.cnfpack
# Check file sizes
du -bh bvsub_12973.smt2.{cnf,cnf.xz,cnfpack}
#> 20M bvsub_12973.smt2.cnf
#> 1.5M bvsub_12973.smt2.cnf.xz
#> 2.2K bvsub_12973.smt2.cnfpack
# Decompress and compute GBD hash to verify the formula
cnfpack -d bvsub_12973.smt2.cnfpack | tail +2 | head -c -1 | tr '\n' ' ' | md5sum
#> 5fb0d1f02c02c6a7fb485707b637d7e4 -
# ^ Matches the hash in the download URL
安装
确保您有一个可工作的Rust工具链,然后运行cargo install cnfpack
以下载、安装和构建最新版本。另外,我还提供了一些平台上的二进制文件。
许可证
本软件可在Zero-Clause BSD许可证下获得,有关完整的许可信息,请参阅LICENSE。
贡献
除非您明确表示,否则您有意提交以包含在本软件中的任何贡献均应按照LICENSE中定义的许可进行许可。
依赖
~6MB
~93K SLoC