freealg 0.1.14__tar.gz → 0.1.15__tar.gz
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.
- {freealg-0.1.14 → freealg-0.1.15}/PKG-INFO +1 -1
- {freealg-0.1.14 → freealg-0.1.15}/freealg/__init__.py +2 -2
- freealg-0.1.15/freealg/__version__.py +1 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_chebyshev.py +0 -8
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_decompress.py +1 -1
- {freealg-0.1.14 → freealg-0.1.15}/freealg/distributions/_kesten_mckay.py +1 -1
- {freealg-0.1.14 → freealg-0.1.15}/freealg/distributions/_marchenko_pastur.py +1 -1
- {freealg-0.1.14 → freealg-0.1.15}/freealg/distributions/_meixner.py +1 -1
- {freealg-0.1.14 → freealg-0.1.15}/freealg/distributions/_wachter.py +1 -1
- {freealg-0.1.14 → freealg-0.1.15}/freealg/distributions/_wigner.py +1 -1
- {freealg-0.1.14 → freealg-0.1.15}/freealg/eigfree.py +52 -2
- {freealg-0.1.14 → freealg-0.1.15}/freealg.egg-info/PKG-INFO +1 -1
- freealg-0.1.14/freealg/__version__.py +0 -1
- {freealg-0.1.14 → freealg-0.1.15}/AUTHORS.txt +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/CHANGELOG.rst +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/LICENSE.txt +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/MANIFEST.in +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/README.rst +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_damp.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_jacobi.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_pade.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_plot_util.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_sample.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_support.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/_util.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/distributions/__init__.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg/freeform.py +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg.egg-info/SOURCES.txt +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg.egg-info/dependency_links.txt +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg.egg-info/not-zip-safe +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg.egg-info/requires.txt +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/freealg.egg-info/top_level.txt +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/pyproject.toml +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/requirements.txt +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/setup.cfg +0 -0
- {freealg-0.1.14 → freealg-0.1.15}/setup.py +0 -0
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
# directory of this source tree.
|
|
8
8
|
|
|
9
9
|
from .freeform import FreeForm
|
|
10
|
-
from .eigfree import eigfree
|
|
10
|
+
from .eigfree import eigfree, condfree
|
|
11
11
|
from . import distributions
|
|
12
12
|
|
|
13
|
-
__all__ = ['FreeForm', 'distributions', 'eigfree']
|
|
13
|
+
__all__ = ['FreeForm', 'distributions', 'eigfree', 'condfree']
|
|
14
14
|
|
|
15
15
|
from .__version__ import __version__ # noqa: F401 E402
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.15"
|
|
@@ -224,14 +224,6 @@ def chebyshev_stieltjes(z, psi, support):
|
|
|
224
224
|
psi_zero = numpy.concatenate([[0], psi])
|
|
225
225
|
S = wynn_pade(psi_zero, J)
|
|
226
226
|
|
|
227
|
-
# build powers J^(k+1) for k=0..K
|
|
228
|
-
# K = len(psi) - 1
|
|
229
|
-
# shape: (..., K+1)
|
|
230
|
-
# Jpow = J[..., None] ** numpy.arange(1, K+2)
|
|
231
|
-
|
|
232
|
-
# sum psi_k * J^(k+1)
|
|
233
|
-
# S = numpy.sum(psi * Jpow, axis=-1)
|
|
234
|
-
|
|
235
227
|
# assemble m(z)
|
|
236
228
|
m_z = -2 / span * numpy.pi * S
|
|
237
229
|
|
|
@@ -21,7 +21,7 @@ __all__ = ['decompress', 'reverse_characteristics']
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def secant_complex(f, z0, z1, a=0+0j, tol=1e-12, max_iter=100,
|
|
24
|
-
alpha=0.5, max_bt=
|
|
24
|
+
alpha=0.5, max_bt=1, eps=1e-30, step_factor=5.0,
|
|
25
25
|
post_smooth=True, jump_tol=10.0, verbose=False):
|
|
26
26
|
"""
|
|
27
27
|
Solves :math:``f(z) = a`` for many starting points simultaneously
|
|
@@ -15,7 +15,7 @@ import numpy
|
|
|
15
15
|
from ._util import compute_eig
|
|
16
16
|
from .freeform import FreeForm
|
|
17
17
|
|
|
18
|
-
__all__ = ['eigfree']
|
|
18
|
+
__all__ = ['eigfree', 'condfree']
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
# ========
|
|
@@ -69,7 +69,11 @@ def eigfree(A, N=None, psd=None, plots=False):
|
|
|
69
69
|
|
|
70
70
|
.. code-block:: python
|
|
71
71
|
|
|
72
|
-
>>> from freealg import
|
|
72
|
+
>>> from freealg import condfree
|
|
73
|
+
>>> from freealg.distributions import MarchenkoPastur
|
|
74
|
+
>>> mp = MarchenkoPastur(1/50)
|
|
75
|
+
>>> A = mp.matrix(3000)
|
|
76
|
+
>>> eigs = eigfree(A)
|
|
73
77
|
"""
|
|
74
78
|
|
|
75
79
|
if A.ndim != 2 or A.shape[0] != A.shape[1]:
|
|
@@ -118,3 +122,49 @@ def eigfree(A, N=None, psd=None, plots=False):
|
|
|
118
122
|
eigs.sort()
|
|
119
123
|
|
|
120
124
|
return eigs
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# ========
|
|
128
|
+
# cond free
|
|
129
|
+
# ========
|
|
130
|
+
|
|
131
|
+
def condfree(A, N=None):
|
|
132
|
+
"""
|
|
133
|
+
Estimate the condition number of a positive-definite matrix.
|
|
134
|
+
|
|
135
|
+
This function estimates the condition number of the matrix
|
|
136
|
+
:math:`\\mathbf{A}` or a larger matrix containing :math:`\\mathbf{A}`
|
|
137
|
+
using free decompression.
|
|
138
|
+
|
|
139
|
+
Parameters
|
|
140
|
+
----------
|
|
141
|
+
|
|
142
|
+
A : numpy.ndarray
|
|
143
|
+
The symmetric real-valued matrix :math:`\\mathbf{A}` whose condition
|
|
144
|
+
number (or that of a matrix containing :math:`\\mathbf{A}`) are to be
|
|
145
|
+
computed.
|
|
146
|
+
|
|
147
|
+
N : int, default=None
|
|
148
|
+
The size of the matrix containing :math:`\\mathbf{A}` to estimate
|
|
149
|
+
eigenvalues of. If None, returns estimates of the eigenvalues of
|
|
150
|
+
:math:`\\mathbf{A}` itself.
|
|
151
|
+
|
|
152
|
+
Notes
|
|
153
|
+
-----
|
|
154
|
+
|
|
155
|
+
This is a convenience function using the eigfree procedure.
|
|
156
|
+
|
|
157
|
+
Examples
|
|
158
|
+
--------
|
|
159
|
+
|
|
160
|
+
.. code-block:: python
|
|
161
|
+
|
|
162
|
+
>>> from freealg import condfree
|
|
163
|
+
>>> from freealg.distributions import MarchenkoPastur
|
|
164
|
+
>>> mp = MarchenkoPastur(1/50)
|
|
165
|
+
>>> A = mp.matrix(3000)
|
|
166
|
+
>>> condfree(A)
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
eigs = eigfree(A, N)
|
|
170
|
+
return eigs.max() / eigs.min()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.14"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|