freealg.FreeForm#

class freealg.FreeForm(A, support=None, delta=1e-06, dtype='complex128', **kwargs)#

Free probability for large matrices.

Parameters:
Anumpy.ndarray

The 2D symmetric \(\mathbf{A}\). The eigenvalues of this will be computed upon calling this class. If a 1D array provided, it is assumed to be the eigenvalues of \(\mathbf{A}\).

supporttuple, default=None

The support of the density of \(\mathbf{A}\). If None, it is estimated from the minimum and maximum of the eigenvalues.

delta: float, default=1e-6

Size of perturbations into the upper half plane for Plemelj’s formula.

dtype{'complex128', 'complex256'}, default = 'complex128'

Data type for inner computations of complex variables:

  • 'complex128': 128-bit complex numbers, equivalent of two double precision floating point.

  • 'complex256': 256-bit complex numbers, equivalent of two long double precision floating point. This optino is only available on Linux machines.

When using series acceleration methods (such as setting continuation in fit() function to wynn-eps), setting a higher precision floating point arithmetics might improve conference.

**kwargsdict, optional

Parameters for the supp() function can also be prescribed here when support=None.

Notes

TBD

References

[1]

Reference.

Examples

>>> from freealg import FreeForm
Attributes:
eignumpy.array

Eigenvalues of the matrix

support: tuple

The predicted (or given) support \((\lambda_{\min}, \lambda_{\max})\) of the eigenvalue density.

psinumpy.array

Jacobi coefficients.

nint

Initial array size (assuming a square matrix when \(\mathbf{A}\) is 2D).

Methods

fit([method, K, alpha, beta, reg, ...])

Fit model to eigenvalues.

density([x, plot, latex, save])

Evaluate spectral density.

hilbert([x, rho, plot, latex, save])

Compute Hilbert transform of the spectral density.

stieltjes([x, y, plot, latex, save])

Compute Stieltjes transform of the spectral density on a grid.

decompress(size[, x, method, max_iter, ...])

Free decompression of spectral density.

eigvalsh([size, seed])

Estimate the eigenvalues.

cond([size, seed])

Estimate the condition number.

trace([size, p, seed])

Estimate the trace of a power.

slogdet([size, seed])

Estimate the sign and logarithm of the determinant.

norm([size, order, seed])

Estimate the Schatten norm.