README.md

June 18, 2025 · View on GitHub

\mathcal{H}-Matrices

Curated list of Hierarchical Matrices (H\mathcal{H}-Matrices) libraries (by language) and papers (by year). Inspired by the awesome-awesomeness list.


C

HiCMA Hatem Ltaief, Kadir Akbudak (King Abdullah University of Science and Technology)

  • Open source
  • Hierarchical format: H\mathcal{H}

Hlib Lars Grasedyck and Steffen Börm (Leipzig, Max Planck Institute)

  • Source code available through signed license agreement.
  • Hierarchical format: H\mathcal{H} and H2\mathcal{H}^2

H2Lib Steffen Boerm, Knut Reimer, Dirk Boysen, Sven Christophersen, Nadine Albrecht, and Jens Burmeister. (University of Kiel)

  • Open source
  • Hierarchical format: H\mathcal{H} and H2\mathcal{H}^2

H2Pack Hua Huang, Xin Xing, and Edmond Chow (Georgia Tech)

  • Open source (MIT license)
  • Hierarchical format: H2\mathcal{H}^2, HSS

C++

HLIBpro Ronald Kriemann (Leipzig, Max Planck Institute)

  • Binary files only, distributed memory implementation on MPI, on shared memory based on TBB
  • Hierarchical format: H\mathcal{H} and H2\mathcal{H}^2

AHMED Mario Bebendorf and Sergej Rjasanow (University of Bonn)

  • Source code available through online license agreement.
  • Hierarchical format: H\mathcal{H}

BBFMM3D W. Fong, and E. Darve (Stanford University)

  • Black-box fast multipole method for general kernels. The FMM is based on Chebyshev and Fourier interpolation methods.

BEM++ W. Smigaj, S. Arridge, T. Betcke, J. Phillips, M. Schweiger (University College London)

  • Boundary Integral Problems with BEM++, accelerated by H\mathcal{H}-Matrices

DMHM Jack Poulson and Ryan Li (Stanford University and Georgia Tech)

  • Open source
  • Hierarchical format: H\mathcal{H}

STRUMPACK X. Sherry Li, Pieter Ghysels, Gustavo Chávez, Yang Liu (Lawrence Berkeley National Laboratory)

  • Open source
  • Hierarchical format: HSS, HOLDR, BLR

Dense_HODLR Amirhossein Aminfar (Stanford University)

  • Open source
  • Hierarchical format: HODLR

Structured CHOLMOD David Bindel (Cornell University)

  • Open source

LoRaSp Hadi Pouransari and Eric Darve (Stanford University)

  • Hierarchical format: H2\mathcal{H}^2
  • A revised version of LORASP with additional options and a more modular software design

RLCM Jie Chen (IBM)

  • linear complexity assembly
  • sub-linear complexity solves: O(n)O(n) many solves in O(nlog(n))O(n \log(n)) complexity

CUDA

hmglib Peter Zaspel (University of Basel)

  • Open source
  • Hierarchical format: H\mathcal{H}

Matlab

Misc Per-Gunnar Martinsson (University of Colorado Boulder)

  • Various scripts, Randomized SVD, Interpolative decomposition, Multi-frontal solvers.
  • Hierarchical format: S, HSS

HSS Jianlin Xia (Purdue University)

  • Hierarchically SemiSeparable package
  • Hierarchical format: HSS

RSVDPACK Sergey Voronin and Per-Gunnar Martinsson (University of Colorado Boulder)

  • Randomized SVD on GPU
  • C and Matlab codes

HMat Haizhao Yang and Yingzhou Li (Duke University and Stanford University)

  • Hierarchical Matrices in Julia and Matlab
  • Matlab library for many types of structured matrices

Fortran

SSS_Toeplitz Jianlin Xia and J. Zhu (Purdue University)

  • Superfast SSS Toeplitz solver
  • Hierarchical format: HSS

HACApK Akihiro Ida (The University of Tokyo)

  • Lattice H-matrices
  • Hierarchical format: H\mathcal{H}

Python

H2Tools Alexander Mikhalev (KAUST / Russian Academy of Sciences)

  • Open source
  • Hierarchical format: H2\mathcal{H}^2

Julia

KernelMatrices.jl Chris Geoga (Argonne National Laboratory)

  • HODLR matrices with ACA or Nystrom approximation for off-diagonal blocks
  • First and second derivatives of kernel matrices that are continuous with respect to kernel parameters

HssMatrices.jl Boris Bonev (EPFL)

  • library for HSS matrices in Julia
  • various compression algorithms, fast solvers and multiplication, as well as visualization tools

HMatrices.jl Luiz M. Faria (INRIA)

  • H\mathcal{H} hierarchical format with support for H\mathcal{H}-LU factorization
  • Focus on applications to boundary integral equation methods

Please open a pull request, contributions to this repository are most welcome.