Skip to main content

Free probability for large matrices

Project description

https://raw.githubusercontent.com/ameli/freealg/refs/heads/main/docs/source/_static/images/icons/logo-freealg-light.png

Paper | Slides | Docs

freealg is a Python package that employs free probability to evaluate the spectral densities of large matrix forms. The fundamental algorithm employed by freealg is free decompression, which extrapolates from the empirical spectral densities of small submatrices to infer the eigenspectrum of extremely large matrices.

Install

Install with pip:

pip install freealg

Alternatively, clone the source code and install with

cd source_dir
pip install .

Documentation

Documentation is available at ameli.github.io/freealg.

Quick Usage

The following code estimates the eigenvalues of a very large Wishart matrix using a much smaller Wishart matrix.

>>> import freealg as fa
>>> mp = fa.distributions.MarchenkoPastur(1/50) # Wishart matrices with aspect ratio 1/50
>>> A = mp.matrix(1000)                         # Sample a 1000 x 1000 Wishart matrix
>>> eigs = fa.eigfree(A, 100_000)               # Estimate the eigenvalues of 100000 x 100000

For more details on how to interface with freealg check out the Quick Start Guide.

Test

You may test the package with tox:

cd source_dir
tox

Alternatively, test with pytest:

cd source_dir
pytest

How to Contribute

We welcome contributions via GitHub’s pull request. Developers should review our [Contributing Guidelines](CONTRIBUTING.rst) before submitting their code. If you do not feel comfortable modifying the code, we also welcome feature requests and bug reports.

How to Cite

If you use this work, please cite the arXiv paper.

@article{spectral2025,
    title={Spectral Estimation with Free Decompression},
    author={Siavash Ameli and Chris van der Heide and Liam Hodgkinson and Michael W. Mahoney},
    year={2025},
    eprint={2506.11994},
    archivePrefix={arXiv},
    primaryClass={stat.ML},
    url={https://arxiv.org/abs/2506.11994},
    journal={arXiv preprint arXiv:2506.11994},
}

License

license

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freealg-0.1.14.tar.gz (43.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freealg-0.1.14-py3-none-any.whl (60.0 kB view details)

Uploaded Python 3

File details

Details for the file freealg-0.1.14.tar.gz.

File metadata

  • Download URL: freealg-0.1.14.tar.gz
  • Upload date:
  • Size: 43.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for freealg-0.1.14.tar.gz
Algorithm Hash digest
SHA256 856b9627d410e2569d62752ab3af7cb4bc3e8a01fbe247d1f7a178a37ed93927
MD5 74bb89b7b6f75676c89f850d20efb816
BLAKE2b-256 53de0f860fc89bbada92b26ea1dd8c1ed15bbbdc0f8a3524f3f9b5a1b66c1aae

See more details on using hashes here.

File details

Details for the file freealg-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: freealg-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 60.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for freealg-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 9fef9c4c52165657a023db04a8503a416630b7e869bd99d7648b0baa2ca2d064
MD5 6af174e5f2679e517c26b36ff63aa1a7
BLAKE2b-256 0db80a0155904b8ee0da9c4fa9c8fa1e2d9b3a9c27ab611e97a4cde2ed7a1d16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page