用于Hafinian计算的开源库
thewalrus的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 thewalrus
从源代码编译
海象依赖于以下python包:
此外,编译C++扩展时需要以下依赖项:- < C++ 11编译器,如:千字节};;;=;;3.3;
- {a10} -线性代数的C++头库。
在基于debian的系统上,可以通过apt和curl:
$ sudo apt install g++ 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,这样海象就可以找到eigen3头文件(如果没有提供,海象将默认在/use/include/eigen3和/usr/local/include/eigen3中查找)。
安装完所有依赖项后,您可以编译最新稳定版本的walrus库,如下所示:
$ python -m pip install thewalrus --no-binary :all:
或者,可以通过克隆git存储库并在开发模式下使用pip安装来编译最新的开发版本。
$ git clone https://github.com/XanaduAI/thewalrus.git $cd thewalrus && python -m pip install -e .
openmp
libwalrus使用openmp并行化永久计算和hafinian计算。目前,这只在使用gnu g++编译器的linux上受支持,因为使用windows/mscv和macos/clang的支持不够。
使用lapack、openblas或mkl
如果您想利用lapack、openblas或mkl的高度优化的矩阵例程,可以选择编译libwalrus,以便eign将这些框架用作后端。结果,libwalrus库中对特征函数的所有调用都被对lapack/openblas/mkl的调用替代。
例如,对于LAPACK集成,请确保安装了{TT12}$C++LAPACK绑定(UTUNTU基于Linux发行版中的TT13}$),然后用环境变量^ {TT14} $:
编译$USE_LAPACK=1 python -m pip install thewalrus --no-binary :all:
或者,您可以通过USE_OPENBLAS=1来使用openblas库。
软件测试
为了确保walrus库在安装后正常工作,可以导航到源代码文件夹并运行来运行测试套件
$ 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,请确保包含的头和 库在包含/库路径中可用。
文档
海象文档可以在Read the Docs上在线获得。
要在本地构建它,您需要安装以下软件包:
如果在基于debian的系统上,可以通过pip和apt的组合安装它们:
$ sudo apt install pandoc doxygen $ pip3 install sphinx sphinxcontrib-bibtex nbsphinx breathe exhale
要构建html文档,请转到顶层目录并运行命令
$ make doc
然后可以在docs/_build/html/目录中找到文档。
支架
如果您有问题,请通过在我们的github问题跟踪器上发布该问题来通知我们。
许可证
walrus是free和open source,根据apache许可证2.0版发布。