The fastest exact hafnian library for real and complex matrices. For more information, please see the documentation.
- Provides the fastest calculation of the hafnian and loop hafnian.
- The algorithms in this library are what Ryser's formula is to the permanent.
Hafnian depends on the following Python packages:
These can be installed using pip, or, if on linux, using your package manager (i.e. apt
if on a Debian-based system.)
Note that the C extension may need to be compiled; you will need the following libraries:
- BLAS
- LAPACKe
- OpenMP
On Debian-based systems, this can be done via apt
before installation:
$ sudo apt install liblapacke-dev
Installation of Hafnian, as well as all required Python packages mentioned above, can be done using pip:
$ python -m pip install hafnian
To ensure that the Hafnian library is working correctly after installation, the test suite can be run by navigating to the source code folder and running
make test
The Hafnian documentation is built automatically and hosted at Read the Docs. To build it locally, you need to have the following packages installed:
- Sphinx >=1.5
- sphinxcontrib-bibtex >=0.3.6
- nbsphinx
- Pandoc
They can be installed via a combination of pip
and apt
if on a Debian-based system:
$ sudo apt install pandoc $ pip3 install sphinx sphinxcontrib-bibtex nbsphinx --user
To build the HTML documentation, go to the top-level directory and run the command
$ make doc
The documentation can then be found in the docs/_build/html/
directory.
Nicolás Quesada, Brajesh Gupt, and Josh Izaac.
If you are doing research using Hafnian, please cite our paper:
Andreas Björklund, Brajesh Gupt, and Nicolás Quesada. A faster hafnian formula for complex matrices and its benchmarking on the Titan supercomputer arXiv, 2018. arxiv:1805.12498
- Source Code: https://github.com/XanaduAI/hafnian
- Issue Tracker: https://github.com/XanaduAI/hafnian/issues
If you are having issues, please let us know by posting the issue on our Github issue tracker.
Hafnian is free and open source, released under the Apache License, Version 2.0.