High-performance tensor software
inspired by tensor diagrams
Contracting two ITensors
C = A * B
Factoring an ITensor
U,S,V = svd(T,i,j)
The Julia version of ITensor (recommended) is easy to install through the Julia package manager:
$ julia julia> ] pkg> add ITensors
For the C++ version of ITensor see C++ installation instructions.
To learn more about which version may be best for you to use and why, please read this FAQ page about Julia versus C++ ITensor.
What Makes ITensor Unique?
The indices of an ITensor have unique identities. When contracting two ITensors, matching indices "find" each other and contract automatically. Adding two ITensors is literally as easy as A+B. Groups of ITensors can be arranged into networks which know their topology.
Quantum Number Conserving ITensors
ITensors can be quantum number conserving (invariant under group symmetries) by storing block-sparse data and other information. Quantum number conserving ITensors are nearly as easy to use as regular, dense ITensors.
Quantum Physics Tools
Easily turn human-readable sums of operators into a compressed MPO tensor network, a quantum circuit, and more. These intermediate formats can be used to find ground states, perform real-time or imaginary-time evolution, and other tasks.