sl_gauss
trace.sl_gauss(A, n=150, deg=20, pdf='rademacher', rng='pcg', seed=-1, orth=0, num_threads=0)
Stochastic Gaussian quadrature approximation.
Computes a set of sample nodes and weights for the degree-k orthogonal polynomial approximating the cumulative spectral measure of A. This function can be used to approximate the spectral density of A, or to approximate the spectral sum of any function applied to the spectrum of A.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
A |
ndarray, sparray, or LinearOperator | real symmetric operator. | required |
n |
int | Number of random vectors to sample for the quadrature estimate. | 150 |
deg |
int | Degree of the quadrature approximation. | 20 |
rng |
‘splitmix64’, ’xoshiro256**‘, ’pcg64’, ‘lcg64’, ‘mt64’ | Random number generator to use (PCG64 by default). | 'splitmix64' |
seed |
int | Seed to initialize the rng entropy source. Set seed > -1 for reproducibility. |
-1 |
pdf |
‘rademacher’, ‘normal’ | Choice of zero-centered distribution to sample random vectors from. | 'rademacher' |
orth |
int | Number of additional Lanczos vectors to orthogonalize against when building the Krylov basis. | 0 |
num_threads |
int | Number of threads to use to parallelize the computation. Setting num_threads < 1 to let OpenMP decide. |
0 |
Returns
| Type | Description |
|---|---|
| float | Estimate of the trace of the matrix function f(A). |
| (dict, optional) | If ‘info = True’, additional information about the computation. |