freealg 0.1.11__py3-none-any.whl → 0.7.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. freealg/__init__.py +8 -2
  2. freealg/__version__.py +1 -1
  3. freealg/_algebraic_form/__init__.py +12 -0
  4. freealg/_algebraic_form/_branch_points.py +288 -0
  5. freealg/_algebraic_form/_constraints.py +139 -0
  6. freealg/_algebraic_form/_continuation_algebraic.py +706 -0
  7. freealg/_algebraic_form/_decompress.py +641 -0
  8. freealg/_algebraic_form/_decompress2.py +204 -0
  9. freealg/_algebraic_form/_edge.py +330 -0
  10. freealg/_algebraic_form/_homotopy.py +323 -0
  11. freealg/_algebraic_form/_moments.py +448 -0
  12. freealg/_algebraic_form/_sheets_util.py +145 -0
  13. freealg/_algebraic_form/_support.py +309 -0
  14. freealg/_algebraic_form/algebraic_form.py +1232 -0
  15. freealg/_free_form/__init__.py +16 -0
  16. freealg/{_chebyshev.py → _free_form/_chebyshev.py} +75 -43
  17. freealg/_free_form/_decompress.py +993 -0
  18. freealg/_free_form/_density_util.py +243 -0
  19. freealg/_free_form/_jacobi.py +359 -0
  20. freealg/_free_form/_linalg.py +508 -0
  21. freealg/{_pade.py → _free_form/_pade.py} +42 -208
  22. freealg/{_plot_util.py → _free_form/_plot_util.py} +37 -22
  23. freealg/{_sample.py → _free_form/_sample.py} +58 -22
  24. freealg/_free_form/_series.py +454 -0
  25. freealg/_free_form/_support.py +214 -0
  26. freealg/_free_form/free_form.py +1362 -0
  27. freealg/_geometric_form/__init__.py +13 -0
  28. freealg/_geometric_form/_continuation_genus0.py +175 -0
  29. freealg/_geometric_form/_continuation_genus1.py +275 -0
  30. freealg/_geometric_form/_elliptic_functions.py +174 -0
  31. freealg/_geometric_form/_sphere_maps.py +63 -0
  32. freealg/_geometric_form/_torus_maps.py +118 -0
  33. freealg/_geometric_form/geometric_form.py +1094 -0
  34. freealg/_util.py +56 -110
  35. freealg/distributions/__init__.py +7 -1
  36. freealg/distributions/_chiral_block.py +494 -0
  37. freealg/distributions/_deformed_marchenko_pastur.py +726 -0
  38. freealg/distributions/_deformed_wigner.py +386 -0
  39. freealg/distributions/_kesten_mckay.py +29 -15
  40. freealg/distributions/_marchenko_pastur.py +224 -95
  41. freealg/distributions/_meixner.py +47 -37
  42. freealg/distributions/_wachter.py +29 -17
  43. freealg/distributions/_wigner.py +27 -14
  44. freealg/visualization/__init__.py +12 -0
  45. freealg/visualization/_glue_util.py +32 -0
  46. freealg/visualization/_rgb_hsv.py +125 -0
  47. freealg-0.7.12.dist-info/METADATA +172 -0
  48. freealg-0.7.12.dist-info/RECORD +53 -0
  49. {freealg-0.1.11.dist-info → freealg-0.7.12.dist-info}/WHEEL +1 -1
  50. freealg/_decompress.py +0 -180
  51. freealg/_jacobi.py +0 -218
  52. freealg/_support.py +0 -85
  53. freealg/freeform.py +0 -967
  54. freealg-0.1.11.dist-info/METADATA +0 -140
  55. freealg-0.1.11.dist-info/RECORD +0 -24
  56. /freealg/{_damp.py → _free_form/_damp.py} +0 -0
  57. {freealg-0.1.11.dist-info → freealg-0.7.12.dist-info}/licenses/AUTHORS.txt +0 -0
  58. {freealg-0.1.11.dist-info → freealg-0.7.12.dist-info}/licenses/LICENSE.txt +0 -0
  59. {freealg-0.1.11.dist-info → freealg-0.7.12.dist-info}/top_level.txt +0 -0
@@ -1,140 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: freealg
3
- Version: 0.1.11
4
- Summary: Free probability for large matrices
5
- Keywords: leaderboard bot chat
6
- Platform: Linux
7
- Platform: OSX
8
- Platform: Windows
9
- Classifier: Programming Language :: Python
10
- Classifier: Programming Language :: Python :: 3.9
11
- Classifier: Programming Language :: Python :: 3.10
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Programming Language :: Python :: 3.12
14
- Classifier: Programming Language :: Python :: Implementation :: CPython
15
- Classifier: License :: OSI Approved :: BSD License
16
- Classifier: Operating System :: POSIX :: Linux
17
- Classifier: Operating System :: Microsoft :: Windows
18
- Classifier: Operating System :: MacOS
19
- Classifier: Natural Language :: English
20
- Classifier: Intended Audience :: Science/Research
21
- Classifier: Intended Audience :: Developers
22
- Classifier: Topic :: Software Development
23
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
- Requires-Python: >=3.9
25
- Description-Content-Type: text/x-rst
26
- License-File: LICENSE.txt
27
- License-File: AUTHORS.txt
28
- Requires-Dist: numpy
29
- Requires-Dist: scipy
30
- Requires-Dist: texplot
31
- Requires-Dist: matplotlib
32
- Requires-Dist: colorcet
33
- Requires-Dist: statsmodels
34
- Provides-Extra: test
35
- Provides-Extra: docs
36
- Dynamic: classifier
37
- Dynamic: description
38
- Dynamic: description-content-type
39
- Dynamic: keywords
40
- Dynamic: license-file
41
- Dynamic: platform
42
- Dynamic: provides-extra
43
- Dynamic: requires-dist
44
- Dynamic: requires-python
45
- Dynamic: summary
46
-
47
- .. image:: https://raw.githubusercontent.com/ameli/freealg/refs/heads/main/docs/source/_static/images/icons/logo-freealg-light.png
48
- :align: left
49
- :width: 240
50
- :class: custom-dark
51
-
52
- *freealg* is a Python package that employs **free** probability to evaluate the spectral
53
- densities of large matrix **form**\ s. The fundamental algorithm employed by *freealg* is
54
- **free decompression**, which extrapolates from the empirical spectral densities of small
55
- submatrices to infer the eigenspectrum of extremely large matrices.
56
-
57
- Install
58
- =======
59
-
60
- Install with ``pip``:
61
-
62
- .. code-block::
63
-
64
- pip install freealg
65
-
66
- Alternatively, clone the source code and install with
67
-
68
- .. code-block::
69
-
70
- cd source_dir
71
- pip install .
72
-
73
- Documentation
74
- =============
75
-
76
- Documentation is available at `ameli.github.io/freealg <https://ameli.github.io/freealg>`__.
77
-
78
- Quick Usage
79
- ===========
80
-
81
- The following code estimates the eigenvalues of a very large Wishart matrix using a much
82
- smaller Wishart matrix.
83
-
84
- .. code-block:: python
85
-
86
- >>> import freealg as fa
87
- >>> mp = fa.distributions.MarchenkoPastur(1/50) # Wishart matrices with aspect ratio 1/50
88
- >>> A = mp.matrix(1000) # Sample a 1000 x 1000 Wishart matrix
89
- >>> eigs = fa.eigfree(A, 100_000) # Estimate the eigenvalues of 100000 x 100000
90
-
91
- For more details on how to interface with *freealg* check out the `Quick Start Guide <https://github.com/ameli/freealg/blob/main/notebooks/quick_start.ipynb>`.
92
-
93
-
94
- Test
95
- ====
96
-
97
- You may test the package with `tox <https://tox.wiki/>`__:
98
-
99
- .. code-block::
100
-
101
- cd source_dir
102
- tox
103
-
104
- Alternatively, test with `pytest <https://pytest.org>`__:
105
-
106
- .. code-block::
107
-
108
- cd source_dir
109
- pytest
110
-
111
- How to Contribute
112
- =================
113
-
114
- We welcome contributions via GitHub's pull request. Developers should review
115
- our [Contributing Guidelines](CONTRIBUTING.rst) before submitting their code.
116
- If you do not feel comfortable modifying the code, we also welcome feature
117
- requests and bug reports.
118
-
119
- How to Cite
120
- ===========
121
-
122
- If you use this work, please cite the `arXiv paper <https://arxiv.org/abs/2506.11994>`.
123
-
124
- .. code::
125
-
126
- @article{ameli2025spectral,
127
- title={Spectral Estimation with Free Decompression},
128
- author={Siavash Ameli and Chris van der Heide and Liam Hodgkinson and Michael W. Mahoney},
129
- journal={arXiv preprint arXiv:2506.11994},
130
- year={2025}
131
- }
132
-
133
-
134
- License
135
- =======
136
-
137
- |license|
138
-
139
- .. |license| image:: https://img.shields.io/github/license/ameli/freealg
140
- :target: https://opensource.org/licenses/BSD-3-Clause
@@ -1,24 +0,0 @@
1
- freealg/__init__.py,sha256=YqewBd3fq4nm-L3oGcExhEDR2wtVcrtggkSGzfpDqr4,528
2
- freealg/__version__.py,sha256=nllDrH0jyChMuuYrK0CC55iTBKUNTUjejtcwxyUF2EQ,23
3
- freealg/_chebyshev.py,sha256=oDJtRCwKEHazitzVBDbfdQz1jkyfsJOJfcAfo-PNkNo,5745
4
- freealg/_damp.py,sha256=k2vtBtWOxQBf4qXaWu_En81lQBXbEO4QbxxWpvuVhdE,1802
5
- freealg/_decompress.py,sha256=vwKEooOmkoFnanaRpxV-3gzsKW3puOhnhD-Y5hZAf-M,4723
6
- freealg/_jacobi.py,sha256=AT4ONSHGGDxVKE3MGMLyMR8uDFiO-e9u3x5udYfdJJk,5635
7
- freealg/_pade.py,sha256=yREJYSmnWaVUNRBNxjuQUqeLe_XSaGa9_VzV6HG5RkA,15164
8
- freealg/_plot_util.py,sha256=BOYre8FPhrxmW1VRj3I40dCjWTFqUBTInmXc3wFunKQ,19648
9
- freealg/_sample.py,sha256=ckC75eqv-mRP1F5BnhvsjfLTaoAzHK8bebl9bCRZYDo,2561
10
- freealg/_support.py,sha256=A8hUjfKnSkHm09KLcEkeEXeTieKjhH-sVPd7I3_p4VE,3100
11
- freealg/_util.py,sha256=PWLXcsTb0-FinGWvNiY12D-f4CHQB5bP_W3ThqfY4FY,3681
12
- freealg/freeform.py,sha256=GRlaBsSow36Dj8p0_fZOINmsutE5KcRcNbgEIKwF3s8,30416
13
- freealg/distributions/__init__.py,sha256=t_yZyEkW_W_tSV9IvgYXtVASxD2BEdiNVXcV2ebMy8M,579
14
- freealg/distributions/_kesten_mckay.py,sha256=HDMjbM1AcNxlwrpYeGmRqcbP10QsLI5RCeKvjVK3tOk,19566
15
- freealg/distributions/_marchenko_pastur.py,sha256=th921hlEEtTbnHnRyBgT54a_e-9ZzAl9rB78O9FjorY,16688
16
- freealg/distributions/_meixner.py,sha256=ItE0zYG2vhyUkObxbx4bDZaJ0BHVQWPzAJGLdMz10l4,17206
17
- freealg/distributions/_wachter.py,sha256=lw70PT3TZlCf7mHU8IqoygXFUWB4IL57obkng0_ZGeI,16591
18
- freealg/distributions/_wigner.py,sha256=2ZSPjgmDr9q9qiz6jO6yhXFo4ALHfxK1f0EzolzhRNE,15565
19
- freealg-0.1.11.dist-info/licenses/AUTHORS.txt,sha256=0b67Nz4_JgIzUupHJTAZxu5QdSUM_HRM_X_w4xCb17o,30
20
- freealg-0.1.11.dist-info/licenses/LICENSE.txt,sha256=J-EEYEtxb3VVf_Bn1TYfWnpY5lMFIM15iLDDcnaDTPA,1443
21
- freealg-0.1.11.dist-info/METADATA,sha256=PpZLvIf9c5BDZ6NmH3EErea6mAMUbPp6qOoIvQeiru4,4006
22
- freealg-0.1.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
- freealg-0.1.11.dist-info/top_level.txt,sha256=eR2wrgYwDdnnJ9Zf5PruPqe4kQav0GMvRsqct6y00Q8,8
24
- freealg-0.1.11.dist-info/RECORD,,
File without changes