  Computation of the trace of a matrix function plays an important role in many
scientific computing applications, including applications in machine learning,
computational physics (e.g., lattice quantum chromodynamics), network analysis
and computational biology (e.g., protein folding), just to name a few
application areas. We propose a linear-time randomized algorithm for
approximating the trace of matrix functions of large symmetric matrices. Our
algorithm is based on coupling function approximation using Chebyshev
interpolation with stochastic trace estimators (Hutchinson's method), and as
such requires only implicit access to the matrix, in the form of a function
that maps a vector to the product of the matrix and the vector. We provide
rigorous approximation error in terms of the extremal eigenvalue of the input
matrix, and the Bernstein ellipse that corresponds to the function at hand.
Based on our general scheme, we provide algorithms with provable guarantees for
important matrix computations, including log-determinant, trace of matrix
inverse, Estrada index, Schatten p-norm, and testing positive definiteness. We
experimentally evaluate our algorithm and demonstrate its effectiveness on
matrices with tens of millions dimensions.
