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 | Live Demo

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

pypi

Install with pip:

pip install freealg

Alternatively, clone the source code and install with

cd source_dir
pip install .

Documentation

deploy-docs

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.eigvalsh(A, 100_000)              # Estimate the eigenvalues of 100000 x 100000

For more details on how to interface with freealg check out the Live Demo.

Test

build-linux

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 before submitting their code. If you do not feel comfortable modifying the code, we also welcome feature requests and bug reports.

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.12.2.tar.gz (279.6 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.12.2-py3-none-any.whl (355.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for freealg-0.12.2.tar.gz
Algorithm Hash digest
SHA256 d40d21bc0bd442c79faf8da9e30d223a20011a5d1a5b874fa8cdf3e2f1effb89
MD5 2ac3b692fcb3ece9855e98f4e5a078d7
BLAKE2b-256 de1fd583a05dd664a60d41ab2fcf5d1536402052d36f9ba291d616052aa98fb9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for freealg-0.12.2-py3-none-any.whl
Algorithm Hash digest
SHA256 28299737a47c1f91ad987fb5e67f893a4e3a3a3abeaede7cc364a4627751abf9
MD5 3ee82684badb7e3d8bf7dc77656f80d9
BLAKE2b-256 8c2e0409a6183c3650231e02425ebd941549a68edddff9e18130660e66dc4c38

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