Package overview

primate, short for Probabilistic Implicit Matrix Trace Estimator, is a Python package that provides estimators of quantities from matrices, linear operators, and matrix functions:

f(A) \triangleq U f(\Lambda) U^{\intercal}, \quad \quad f : [a,b] \to \mathbb{R}

This definition is quite general in that different parameterizations of f produce a variety of spectral quantities, including the matrix inverse A^{-1}, the matrix exponential \mathrm{exp}(A), the matrix logarithm \mathrm{log}(A), and so on.

Composing these with trace and diagonal estimators yields approximations for the numerical rank, the log-determinant, the Schatten norms, the eigencount, the Estrada index, the Heat Kernel Signature, and so on.

Notable features of primate include:

primate was partially inspired by the imate package—for a comparison of the two, see here.

Footnotes

  1. This includes std::function’s, C-style function pointers, functors, and lambda expressions.↩︎