# Welcome to quimb’s documentation!¶

quimb is an easy but fast python library for quantum information and many-body calculations, including with tensor networks. The code is hosted on github, do please submit any issues or pull requests there. It is also thoroughly unit-tested and the tests might be the best place to look for detailed documentation.

The core quimb module:

• Uses straight numpy and scipy.sparse matrices as quantum objects

• Accelerates and parallelizes many operations using numba.

• Makes it easy to construct operators in large tensor spaces (e.g. 2D lattices)

• Uses efficient methods to compute various quantities including entanglement measures

• Has many built-in states and operators, including those based on fast, parallel random number generation

• Can perform evolutions with several methods, computing quantities on the fly

• Has an optional slepc4py interface for easy distributed (MPI) linear algebra. This can massively increase the performance when seeking, for example, mid-spectrum eigenstates

The tensor network submodule quimb.tensor:

• Uses a geometry free representation of tensor networks

• Uses opt_einsum to find efficient contraction orders for hundreds or thousands of tensors

• Can perform those contractions on various backends, including with a GPU

• Can plot any network, color-coded, with bond size represented

• Can treat any network as a scipy LinearOperator, allowing many decompositions

• Can perform DMRG1, DMRG2 and DMRGX, in matrix product state language

• Has tools to efficiently address periodic problems (transfer matrix compression and pseudo-orthogonalization)

• Can perform MPS time evolutions with TEBD

• Can optimize any tensor network with tensorflow or pytorch

## Guides¶

The following guides give a basic introduction to the various parts:

## Examples¶

The following examples, generated from the notebooks in docs/examples, demonstrate some more advanced features or complete usage:

## Citing¶

quimb is published in the Journal of Open Source Software here - if it’s ever useful in research please consider citing it!

@article{gray2018quimb,
title={quimb: a python library for quantum information and many-body calculations},
author={Gray, Johnnie},
journal={Journal of Open Source Software},
year = {2018},
volume={3}, number={29}, pages={819},
doi={10.21105/joss.00819},
}


## Notes¶

Notes on contributing to quimb and release details can be found below:

## Indices and tables¶

The following sections contain the complete listing of functions, classes and modules in quimb.