用于Hafinian计算的开源库
hafnian的Python项目详细描述
最快的哈夫尼亚图书馆。有关详细信息,请参见documentation。
功能
- 一般和某些结构矩阵的hafinian、loop-hafinian和torontonian的最快计算。
- 一个易于使用的界面,使用环路哈夫尼亚进行量子态计算
- 从图的hafinian和torontonian采样的最新算法。
- 非负矩阵的HFFAN逼近的有效经典方法。
安装
预装的二进制车轮可用于以下平台:
macOS 10.6+ | manylinux x86_64 | Windows 64bit | |
---|---|---|---|
Python 3.5 | ✅ | ✅ | ✅ |
Python 3.6 | ✅ | ✅ | ✅ |
Python 3.7 | ✅ | ✅ | ✅ |
要安装,只需运行
pip install hafnian
从源代码编译
hafinian依赖于以下python包:
<>此外,为了编译包含的FORTRAN和C++扩展,需要以下依赖关系:- Fortran编译器,例如gfortran
- {a10} -线性代数的C++头库。
在基于debian的系统上,可以通过apt和curl:
$ sudo apt install g++ gfortran libeigen3-dev
或者在MacOS上使用自制程序:
$ brew install gcc eigen
或者,您可以手动下载特征头:
$ mkdir ~/.local/eigen3 &&cd ~/.local/eigen3 $ wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz -O eigen3.tar.gz $ tar xzf eigen3.tar.gz eigen-eigen-323c052e1731/Eigen --strip-components 1$exportEIGEN_INCLUDE_DIR=$HOME/.local/eigen3
请注意,我们导出环境变量EIGEN_INCLUDE_DIR,以便hafinian可以找到eign3头文件(如果未提供,hafinian将默认在/use/include/eigen3和/usr/local/include/eigen3中查找)。
安装完所有依赖项后,您可以编译最新稳定版本的hafinian库,如下所示:
$ python -m pip install hafnian --no-binary :all:
或者,可以通过克隆git存储库并在开发模式下使用pip安装来编译最新的开发版本。
$ git clone https://github.com/XanaduAI/hafnian.git $cd hafnian && python -m pip install -e .
openmp
hafinian库使用openmp并行化永久计算和hafinian计算。目前,这只在使用gnu g++编译器的linux上受支持,因为使用windows/mscv和macos/clang的支持不够。
使用lapack、openblas或mkl
如果您想利用lapack、openblas或mkl高度优化的矩阵例程,您可以选择编译hafinian库,以便eigen使用这些框架作为后端。结果,hafinian库中对特征函数的所有调用都被对lapack/openblas/mkl的调用替代。
例如,对于LAPACK集成,请确保安装了{TT10}$C++LAPACK绑定(UTUNTU基于Linux发行版中的TT11}$),然后用环境变量^ {TT12}$:
编译$USE_LAPACK=1 python -m pip install hafnian --no-binary :all:
或者,您可以通过USE_OPENBLAS=1来使用openblas库。
软件测试
为了确保hafinian库在安装后正常工作,可以导航到源代码文件夹并运行来运行测试套件
$ make test
运行低级C++测试套件,Googletest 将需要安装。在基于ubuntu的发行版中,可以按如下方式执行:
sudo apt-get install cmake libgtest-dev
cd /usr/src/googletest/googletest
sudo cmake
sudo make
sudo cp libgtest* /usr/lib/
sudo mkdir /usr/local/lib/googletest
sudo ln -s /usr/lib/libgtest.a /usr/local/lib/googletest/libgtest.a
sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/googletest/libgtest_main.a
或者,最新的googletest版本可以从源代码安装:
sudo apt install cmake
wget -qO - https://github.com/google/googletest/archive/release-1.8.1.tar.gz | tar -xz
cmake -D CMAKE_INSTALL_PREFIX:PATH=$HOME/googletest -D CMAKE_BUILD_TYPE=Release googletest-release-1.8.1
make install
如果从源安装googletest,请确保包含的头和 库在包含/库路径中可用。
文档
Hafinian+文档当前未在线托管。要在本地构建它,您需要安装以下软件包:
如果在基于debian的系统上,可以通过pip和apt的组合安装它们:
$ sudo apt install pandoc doxygen $ pip3 install sphinx sphinxcontrib-bibtex nbsphinx breathe exhale
建造HTML文档,转到顶层目录并运行命令
$ make doc
然后可以在docs/_build/html/目录中找到文档。
支架
如果您有问题,请通过在我们的github问题跟踪器上发布该问题来通知我们。
许可证
hafinian是free和open source,在apache许可2.0版下发布。