SpM-lab

Compact representations and analytic continuation of imaginary-time Green's functions

Open-source libraries for quantum many-body calculations: the intermediate representation (IR), the discrete Lehmann representation (DLR), sparse sampling, minimal pole representations, and analytic continuation.

sparse-ir ecosystem

Libraries for the IR and DLR bases and sparse sampling in Python, Julia, Rust, C and Fortran, sharing one backend and one set of conventions.

Start here: sparse-ir documentation → What IR and DLR are, how they came about, shared notation, and which library to use

Libraries

LanguagePackageDocumentation
Python sparse-ir pip install sparse-ir sparse-ir.readthedocs.io
Julia SparseIR.jl ] add SparseIR SparseIR.jl docs
Rust, C, Fortran sparse-ir-rs sparse-ir, sparse-ir-capi on crates.io Rust guide and tutorials

sparse-ir-rs is the shared backend: its C API (libsparseir) is what the Python and Julia libraries call, and it ships the Fortran bindings.

Analytic continuation

From imaginary-time or Matsubara data to real-frequency spectra.

SpM

Sparse-modeling analytic continuation, including the SpM-Padé method (C++).

pySpMAC

Sparse-modeling analytic continuation for multi-orbital systems with semi-positive definiteness (Python).

Worked examples: analytic continuation with the IR basis and with SpM in the Python tutorial and the Rust guide.

Nevanlinna.jl (Nevanlinna analytic continuation, Julia) is kept for reference but not recommended: the Nevanlinna method is very sensitive to noise in the input data. MiniPole is its improved successor for this purpose.

Key papers

For the full list and how IR, DLR and MiniPole relate, see History and comparison.

Archived and superseded

RepositoryUse instead
irbasis, irlibsparse-ir, SparseIR.jl
SparseIR_deprecated.jlSparseIR.jl
libsparseir, pysparseir, LibSparseIR.jlsparse-ir-rs
sparse-ir-fortranfortran/ in sparse-ir-rs
sparse-ir-tutorial-v1 (for sparse-ir v1) sparse-ir-tutorial