# 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 objectsAccelerates 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 decompositionsCan 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:

- 2D Antiferromagnetic Model Example
- Quenching a Random Product State
- MPI Interior Eigensolve with Lazy, Projected Operators
- Tensor Network Random Unitary Evolution
- Periodic DMRG and Calculations
- MPS Evolution with TEBD
- Basic MERA Manipulations
- Optimizing a Tensor Network using Tensorflow
- TN Quantum-Circuit Simulation
- Tensor Network Training of Quantum Circuits

## 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`

.