绑定到parma多面体库,允许使用来自python的双重描述
pyparma的Python项目详细描述
这些是python到Parma Polyhedra Library的绑定。它们是从 为了使用sagemath项目 在非SAGE项目中。这是GPL授权的,就像Sagemath一样。
要构建它,您需要同时拥有ppl和gmp库 安装在distutils可以找到的地方。然后,
python setup.py build && python setup.py install
如果遇到问题,请尝试将所需的路径添加到库目录 setup.py作为扩展构造函数的关键字参数。
要使用它,只需导入模块,创建分数矩阵或 整数,并计算双精度描述!
frompyparmaimportPolyhedronimportnumpyasnpfromfractionsimportFractionfractionize=np.vectorize(lambdax:Fraction(str(x)))A=fractionize(np.random.rand(50,3))poly=Polyhedron(hrep=A)printpoly.hrep()
h表示和v表示都遵循cdd格式,即:
- h_rep=[b a]其中多面体由b+a x>;=0 定义
- v_rep=[t v]其中v是堆叠顶点(水平 t是类型:1代表点,0代表射线/直线。
要运行测试,只需运行:
nosetests
从顶层目录。要运行测试,您需要 CDD library 安装。我假设您安装了 pycddlib绑定。