SelInv is the implementation of the Selected Inversion algorithm, which computes the selected elements of the inverse of a general sparse symmetric matrix.

Sequential version:
Real symmetric : download
Complex symmetric : download

The parallel version of SelInv is included in the PEXSI package.


The Pole EXpansion and Selected Inversion method (PEXSI) is a fast method for evaluating certain selected elements of a matrix function. PEXSI is highly scalable on distributed memory parallel machines.
The parallel selected inversion method (PSelInv) is included in the PEXSI package.

For more information of PEXSI (including the download, install, and simple tutorial information), please visit the website:

PEXSI is now used in a number of community electronic structure software packages, such as BigDFT, CP2K, DFTB+, DGDFT, FHI-aims, Quantumwise ATK, and SIESTA. It is also part of the Electronic Structure Infrastructure (ELSI) Project.

You can also directly download the tarball here.


The Selected Column of Density Matrix (SCDM) method is an efficient and robust way for computing localized orbitals. It works for both isolated and condensed matter systems, insulators and metals. The simplest setup (isolated insulating system) only requires 2 lines of MATLAB code!

[Q,R,piv] = qr(Psi',0);
Phi = Psi*Q;

A more comprehensive prototype implementation of the SCDM method in MATLAB is here.

The SCDM method is now integrated into Wannier90 (from v3.0) and Quantum ESPRESSO (from v6.3) software packages for production level usage.


The Adaptively Compressed Exchange (ACE) method is an efficient and robust way for reducing the frequency of the application of the Fock exchange operator for hybrid exchange-correlation functional calculations.

The ACE formulation has been integrated into software packages such as ABINIT, PWMat, Quantum ATK, Quantum ESPRESSO, and VASP, and is often the default solver for hybrid functional calculations.


The QSPPack is a software package for efficiently obtaining quantum phase factors for quantum signal progressing (QSP) and quantum singular value transformations.

github link for QSPPack

It has been used to implement the RAndom Circuit Block Encoded Matrix (RACBEM) model for the quantum LINPACK benchmark

github link for RACBEM