flopscope 0.2.0__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.
- benchmarks/__init__.py +1 -0
- benchmarks/__main__.py +6 -0
- benchmarks/_baseline.py +171 -0
- benchmarks/_bitwise.py +231 -0
- benchmarks/_complex.py +176 -0
- benchmarks/_contractions.py +291 -0
- benchmarks/_fft.py +198 -0
- benchmarks/_impl_urls.py +139 -0
- benchmarks/_linalg.py +197 -0
- benchmarks/_linalg_delegates.py +407 -0
- benchmarks/_metadata.py +141 -0
- benchmarks/_misc.py +653 -0
- benchmarks/_perf.py +321 -0
- benchmarks/_perm_group_calibration.py +175 -0
- benchmarks/_pointwise.py +372 -0
- benchmarks/_polynomial.py +193 -0
- benchmarks/_random.py +209 -0
- benchmarks/_reductions.py +136 -0
- benchmarks/_sorting.py +289 -0
- benchmarks/_stats.py +137 -0
- benchmarks/_window.py +92 -0
- benchmarks/accumulation/__init__.py +0 -0
- benchmarks/accumulation/bench_cost_compute.py +138 -0
- benchmarks/dashboard.py +312 -0
- benchmarks/runner.py +636 -0
- flopscope/__init__.py +273 -0
- flopscope/_accumulation/__init__.py +13 -0
- flopscope/_accumulation/_bipartite.py +121 -0
- flopscope/_accumulation/_burnside.py +51 -0
- flopscope/_accumulation/_cache.py +146 -0
- flopscope/_accumulation/_components.py +153 -0
- flopscope/_accumulation/_cost.py +1414 -0
- flopscope/_accumulation/_cost_descriptions.py +63 -0
- flopscope/_accumulation/_detection.py +318 -0
- flopscope/_accumulation/_ladder.py +191 -0
- flopscope/_accumulation/_output_orbit.py +104 -0
- flopscope/_accumulation/_partition.py +290 -0
- flopscope/_accumulation/_path_info.py +211 -0
- flopscope/_accumulation/_public.py +169 -0
- flopscope/_accumulation/_reduction.py +310 -0
- flopscope/_accumulation/_regimes.py +303 -0
- flopscope/_accumulation/_shape.py +33 -0
- flopscope/_accumulation/_wreath.py +209 -0
- flopscope/_budget.py +1027 -0
- flopscope/_config.py +118 -0
- flopscope/_counting_ops.py +451 -0
- flopscope/_display.py +478 -0
- flopscope/_docstrings.py +59 -0
- flopscope/_dtypes.py +20 -0
- flopscope/_einsum.py +717 -0
- flopscope/_errstate.py +25 -0
- flopscope/_flops.py +282 -0
- flopscope/_free_ops.py +2654 -0
- flopscope/_ndarray.py +1126 -0
- flopscope/_opt_einsum/LICENSE +21 -0
- flopscope/_opt_einsum/NOTICE +59 -0
- flopscope/_opt_einsum/__init__.py +209 -0
- flopscope/_opt_einsum/_contract.py +1478 -0
- flopscope/_opt_einsum/_helpers.py +164 -0
- flopscope/_opt_einsum/_hsluv.py +273 -0
- flopscope/_opt_einsum/_path_random.py +462 -0
- flopscope/_opt_einsum/_paths.py +1653 -0
- flopscope/_opt_einsum/_subgraph_symmetry.py +544 -0
- flopscope/_opt_einsum/_symmetry.py +140 -0
- flopscope/_opt_einsum/_typing.py +37 -0
- flopscope/_perm_group.py +717 -0
- flopscope/_pointwise.py +2522 -0
- flopscope/_polynomial.py +278 -0
- flopscope/_registry.py +3216 -0
- flopscope/_sorting_ops.py +571 -0
- flopscope/_symmetric.py +812 -0
- flopscope/_symmetry_transport.py +510 -0
- flopscope/_symmetry_utils.py +669 -0
- flopscope/_type_info.py +12 -0
- flopscope/_unwrap.py +70 -0
- flopscope/_validation.py +83 -0
- flopscope/_version_check.py +46 -0
- flopscope/_weights.py +195 -0
- flopscope/_window.py +177 -0
- flopscope/accounting.py +565 -0
- flopscope/data/default_weights.json +462 -0
- flopscope/data/weights.csv +509 -0
- flopscope/errors.py +197 -0
- flopscope/numpy/__init__.py +878 -0
- flopscope/numpy/fft/__init__.py +55 -0
- flopscope/numpy/fft/_free.py +51 -0
- flopscope/numpy/fft/_transforms.py +695 -0
- flopscope/numpy/linalg/__init__.py +105 -0
- flopscope/numpy/linalg/_aliases.py +126 -0
- flopscope/numpy/linalg/_compound.py +161 -0
- flopscope/numpy/linalg/_decompositions.py +353 -0
- flopscope/numpy/linalg/_properties.py +533 -0
- flopscope/numpy/linalg/_solvers.py +444 -0
- flopscope/numpy/linalg/_svd.py +122 -0
- flopscope/numpy/random/__init__.py +684 -0
- flopscope/numpy/random/_cost_formulas.py +115 -0
- flopscope/numpy/random/_counted_classes.py +241 -0
- flopscope/numpy/testing/__init__.py +13 -0
- flopscope/numpy/typing/__init__.py +30 -0
- flopscope/py.typed +0 -0
- flopscope/stats/__init__.py +84 -0
- flopscope/stats/_base.py +77 -0
- flopscope/stats/_cauchy.py +146 -0
- flopscope/stats/_erf.py +190 -0
- flopscope/stats/_expon.py +146 -0
- flopscope/stats/_laplace.py +150 -0
- flopscope/stats/_logistic.py +148 -0
- flopscope/stats/_lognorm.py +160 -0
- flopscope/stats/_ndtri.py +133 -0
- flopscope/stats/_norm.py +149 -0
- flopscope/stats/_truncnorm.py +186 -0
- flopscope/stats/_uniform.py +141 -0
- flopscope-0.2.0.dist-info/METADATA +23 -0
- flopscope-0.2.0.dist-info/RECORD +115 -0
- flopscope-0.2.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"""Truncated normal distribution for :mod:`flopscope.stats`."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import numpy as _np
|
|
6
|
+
|
|
7
|
+
from flopscope.stats._base import ContinuousDistribution
|
|
8
|
+
from flopscope.stats._erf import _erf
|
|
9
|
+
from flopscope.stats._ndtri import _ndtri
|
|
10
|
+
|
|
11
|
+
_SQRT2 = _np.sqrt(2.0)
|
|
12
|
+
_INV_SQRT_2PI = 1.0 / _np.sqrt(2.0 * _np.pi)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _std_norm_cdf(x):
|
|
16
|
+
"""Standard normal CDF (no budget deduction)."""
|
|
17
|
+
return 0.5 * (1.0 + _erf(x / _SQRT2))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _std_norm_pdf(x):
|
|
21
|
+
"""Standard normal PDF (no budget deduction)."""
|
|
22
|
+
return _INV_SQRT_2PI * _np.exp(-0.5 * x * x)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class TruncnormDistribution(ContinuousDistribution):
|
|
26
|
+
"""Truncated normal continuous random variable.
|
|
27
|
+
|
|
28
|
+
This object mirrors ``scipy.stats.truncnorm``.
|
|
29
|
+
|
|
30
|
+
Methods
|
|
31
|
+
-------
|
|
32
|
+
pdf(x, a, b, loc=0, scale=1)
|
|
33
|
+
Evaluate the probability density function.
|
|
34
|
+
cdf(x, a, b, loc=0, scale=1)
|
|
35
|
+
Evaluate the cumulative distribution function.
|
|
36
|
+
ppf(q, a, b, loc=0, scale=1)
|
|
37
|
+
Evaluate the percent-point function.
|
|
38
|
+
|
|
39
|
+
Notes
|
|
40
|
+
-----
|
|
41
|
+
``a`` and ``b`` are standardized lower and upper bounds. The truncated
|
|
42
|
+
support is ``[a * scale + loc, b * scale + loc]``, and both bounds appear
|
|
43
|
+
before ``loc`` and ``scale`` to match SciPy's signature. Each public
|
|
44
|
+
method deducts ``1 * numel(input)`` FLOPs from the active budget.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
def __init__(self):
|
|
48
|
+
super().__init__("truncnorm")
|
|
49
|
+
|
|
50
|
+
def pdf(self, x, a, b, loc=0, scale=1):
|
|
51
|
+
"""Evaluate the probability density function.
|
|
52
|
+
|
|
53
|
+
Parameters
|
|
54
|
+
----------
|
|
55
|
+
x : array_like
|
|
56
|
+
Points at which to evaluate the density.
|
|
57
|
+
a : float
|
|
58
|
+
Lower standardized bound.
|
|
59
|
+
b : float
|
|
60
|
+
Upper standardized bound.
|
|
61
|
+
loc : float, optional
|
|
62
|
+
Mean of the underlying normal distribution. Defaults to ``0``.
|
|
63
|
+
scale : float, optional
|
|
64
|
+
Standard deviation of the underlying normal distribution.
|
|
65
|
+
Defaults to ``1``.
|
|
66
|
+
|
|
67
|
+
Returns
|
|
68
|
+
-------
|
|
69
|
+
FlopscopeArray
|
|
70
|
+
Probability density evaluated elementwise at ``x``.
|
|
71
|
+
|
|
72
|
+
Notes
|
|
73
|
+
-----
|
|
74
|
+
Equivalent to ``scipy.stats.truncnorm.pdf(x, a, b, loc, scale)``.
|
|
75
|
+
FLOP cost: ``1 * numel(x)``.
|
|
76
|
+
|
|
77
|
+
Examples
|
|
78
|
+
--------
|
|
79
|
+
>>> import numpy as np
|
|
80
|
+
>>> import flopscope as flops
|
|
81
|
+
>>> x = np.array([-0.5, 0.0, 0.5])
|
|
82
|
+
>>> np.round(flops.stats.truncnorm.pdf(x, a=-1.0, b=1.0), 3)
|
|
83
|
+
array([0.516, 0.584, 0.516])
|
|
84
|
+
"""
|
|
85
|
+
return self._deduct_and_call("pdf", 1, x, a, b, loc=loc, scale=scale)
|
|
86
|
+
|
|
87
|
+
def cdf(self, x, a, b, loc=0, scale=1):
|
|
88
|
+
"""Evaluate the cumulative distribution function.
|
|
89
|
+
|
|
90
|
+
Parameters
|
|
91
|
+
----------
|
|
92
|
+
x : array_like
|
|
93
|
+
Points at which to evaluate the cumulative probability.
|
|
94
|
+
a : float
|
|
95
|
+
Lower standardized bound.
|
|
96
|
+
b : float
|
|
97
|
+
Upper standardized bound.
|
|
98
|
+
loc : float, optional
|
|
99
|
+
Mean of the underlying normal distribution. Defaults to ``0``.
|
|
100
|
+
scale : float, optional
|
|
101
|
+
Standard deviation of the underlying normal distribution.
|
|
102
|
+
Defaults to ``1``.
|
|
103
|
+
|
|
104
|
+
Returns
|
|
105
|
+
-------
|
|
106
|
+
FlopscopeArray
|
|
107
|
+
Cumulative probability evaluated elementwise at ``x``.
|
|
108
|
+
|
|
109
|
+
Notes
|
|
110
|
+
-----
|
|
111
|
+
Equivalent to ``scipy.stats.truncnorm.cdf(x, a, b, loc, scale)``.
|
|
112
|
+
FLOP cost: ``1 * numel(x)``.
|
|
113
|
+
|
|
114
|
+
Examples
|
|
115
|
+
--------
|
|
116
|
+
>>> import numpy as np
|
|
117
|
+
>>> import flopscope as flops
|
|
118
|
+
>>> x = np.array([-0.5, 0.0, 0.5])
|
|
119
|
+
>>> np.round(flops.stats.truncnorm.cdf(x, a=-1.0, b=1.0), 3)
|
|
120
|
+
array([0.22, 0.5 , 0.78])
|
|
121
|
+
"""
|
|
122
|
+
return self._deduct_and_call("cdf", 1, x, a, b, loc=loc, scale=scale)
|
|
123
|
+
|
|
124
|
+
def ppf(self, q, a, b, loc=0, scale=1):
|
|
125
|
+
"""Evaluate the percent-point function.
|
|
126
|
+
|
|
127
|
+
Parameters
|
|
128
|
+
----------
|
|
129
|
+
q : array_like
|
|
130
|
+
Probabilities in ``[0, 1]``.
|
|
131
|
+
a : float
|
|
132
|
+
Lower standardized bound.
|
|
133
|
+
b : float
|
|
134
|
+
Upper standardized bound.
|
|
135
|
+
loc : float, optional
|
|
136
|
+
Mean of the underlying normal distribution. Defaults to ``0``.
|
|
137
|
+
scale : float, optional
|
|
138
|
+
Standard deviation of the underlying normal distribution.
|
|
139
|
+
Defaults to ``1``.
|
|
140
|
+
|
|
141
|
+
Returns
|
|
142
|
+
-------
|
|
143
|
+
FlopscopeArray
|
|
144
|
+
Quantiles corresponding to ``q``.
|
|
145
|
+
|
|
146
|
+
Notes
|
|
147
|
+
-----
|
|
148
|
+
Equivalent to ``scipy.stats.truncnorm.ppf(q, a, b, loc, scale)``.
|
|
149
|
+
FLOP cost: ``1 * numel(q)``.
|
|
150
|
+
|
|
151
|
+
Examples
|
|
152
|
+
--------
|
|
153
|
+
>>> import numpy as np
|
|
154
|
+
>>> import flopscope as flops
|
|
155
|
+
>>> q = np.array([0.25, 0.5, 0.75])
|
|
156
|
+
>>> np.round(flops.stats.truncnorm.ppf(q, a=-1.0, b=1.0), 3)
|
|
157
|
+
array([-0.442, 0. , 0.442])
|
|
158
|
+
"""
|
|
159
|
+
return self._deduct_and_call("ppf", 1, q, a, b, loc=loc, scale=scale)
|
|
160
|
+
|
|
161
|
+
def _compute_pdf(self, x, a, b, loc=0, scale=1):
|
|
162
|
+
z = (x - loc) / scale
|
|
163
|
+
phi_a = _std_norm_cdf(a)
|
|
164
|
+
phi_b = _std_norm_cdf(b)
|
|
165
|
+
denom = scale * (phi_b - phi_a)
|
|
166
|
+
result = _std_norm_pdf(z) / denom
|
|
167
|
+
return _np.where((z >= a) & (z <= b), result, 0.0)
|
|
168
|
+
|
|
169
|
+
def _compute_cdf(self, x, a, b, loc=0, scale=1):
|
|
170
|
+
z = (x - loc) / scale
|
|
171
|
+
phi_a = _std_norm_cdf(a)
|
|
172
|
+
phi_b = _std_norm_cdf(b)
|
|
173
|
+
result = (_std_norm_cdf(z) - phi_a) / (phi_b - phi_a)
|
|
174
|
+
result = _np.where(z < a, 0.0, result)
|
|
175
|
+
result = _np.where(z > b, 1.0, result)
|
|
176
|
+
return result
|
|
177
|
+
|
|
178
|
+
def _compute_ppf(self, q, a, b, loc=0, scale=1):
|
|
179
|
+
phi_a = _std_norm_cdf(a)
|
|
180
|
+
phi_b = _std_norm_cdf(b)
|
|
181
|
+
inner = phi_a + q * (phi_b - phi_a)
|
|
182
|
+
z = _ndtri(inner)
|
|
183
|
+
return loc + scale * z
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
truncnorm = TruncnormDistribution()
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"""Uniform distribution for :mod:`flopscope.stats`."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import numpy as _np
|
|
6
|
+
|
|
7
|
+
from flopscope.stats._base import ContinuousDistribution
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class UniformDistribution(ContinuousDistribution):
|
|
11
|
+
"""Continuous uniform random variable on ``[loc, loc + scale]``.
|
|
12
|
+
|
|
13
|
+
This object mirrors ``scipy.stats.uniform``.
|
|
14
|
+
|
|
15
|
+
Methods
|
|
16
|
+
-------
|
|
17
|
+
pdf(x, loc=0, scale=1)
|
|
18
|
+
Evaluate the probability density function.
|
|
19
|
+
cdf(x, loc=0, scale=1)
|
|
20
|
+
Evaluate the cumulative distribution function.
|
|
21
|
+
ppf(q, loc=0, scale=1)
|
|
22
|
+
Evaluate the percent-point function.
|
|
23
|
+
|
|
24
|
+
Notes
|
|
25
|
+
-----
|
|
26
|
+
``loc`` is the lower bound and ``scale`` is the interval width. Each
|
|
27
|
+
public method deducts ``1 * numel(input)`` FLOPs from the active budget.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def __init__(self):
|
|
31
|
+
super().__init__("uniform")
|
|
32
|
+
|
|
33
|
+
def pdf(self, x, loc=0, scale=1):
|
|
34
|
+
"""Evaluate the probability density function.
|
|
35
|
+
|
|
36
|
+
Parameters
|
|
37
|
+
----------
|
|
38
|
+
x : array_like
|
|
39
|
+
Points at which to evaluate the density.
|
|
40
|
+
loc : float, optional
|
|
41
|
+
Lower bound of the support. Defaults to ``0``.
|
|
42
|
+
scale : float, optional
|
|
43
|
+
Width of the support interval. Defaults to ``1``.
|
|
44
|
+
|
|
45
|
+
Returns
|
|
46
|
+
-------
|
|
47
|
+
FlopscopeArray
|
|
48
|
+
Probability density evaluated elementwise at ``x``.
|
|
49
|
+
|
|
50
|
+
Notes
|
|
51
|
+
-----
|
|
52
|
+
Equivalent to ``scipy.stats.uniform.pdf(x, loc, scale)``.
|
|
53
|
+
FLOP cost: ``1 * numel(x)``.
|
|
54
|
+
|
|
55
|
+
Examples
|
|
56
|
+
--------
|
|
57
|
+
>>> import numpy as np
|
|
58
|
+
>>> import flopscope as flops
|
|
59
|
+
>>> x = np.array([-0.5, 0.5, 1.5])
|
|
60
|
+
>>> np.round(flops.stats.uniform.pdf(x), 3)
|
|
61
|
+
array([0., 1., 0.])
|
|
62
|
+
"""
|
|
63
|
+
return self._deduct_and_call("pdf", 1, x, loc=loc, scale=scale)
|
|
64
|
+
|
|
65
|
+
def cdf(self, x, loc=0, scale=1):
|
|
66
|
+
"""Evaluate the cumulative distribution function.
|
|
67
|
+
|
|
68
|
+
Parameters
|
|
69
|
+
----------
|
|
70
|
+
x : array_like
|
|
71
|
+
Points at which to evaluate the cumulative probability.
|
|
72
|
+
loc : float, optional
|
|
73
|
+
Lower bound of the support. Defaults to ``0``.
|
|
74
|
+
scale : float, optional
|
|
75
|
+
Width of the support interval. Defaults to ``1``.
|
|
76
|
+
|
|
77
|
+
Returns
|
|
78
|
+
-------
|
|
79
|
+
FlopscopeArray
|
|
80
|
+
Cumulative probability evaluated elementwise at ``x``.
|
|
81
|
+
|
|
82
|
+
Notes
|
|
83
|
+
-----
|
|
84
|
+
Equivalent to ``scipy.stats.uniform.cdf(x, loc, scale)``.
|
|
85
|
+
FLOP cost: ``1 * numel(x)``.
|
|
86
|
+
|
|
87
|
+
Examples
|
|
88
|
+
--------
|
|
89
|
+
>>> import numpy as np
|
|
90
|
+
>>> import flopscope as flops
|
|
91
|
+
>>> x = np.array([0.0, 0.5, 1.0])
|
|
92
|
+
>>> np.round(flops.stats.uniform.cdf(x), 3)
|
|
93
|
+
array([0. , 0.5, 1. ])
|
|
94
|
+
"""
|
|
95
|
+
return self._deduct_and_call("cdf", 1, x, loc=loc, scale=scale)
|
|
96
|
+
|
|
97
|
+
def ppf(self, q, loc=0, scale=1):
|
|
98
|
+
"""Evaluate the percent-point function.
|
|
99
|
+
|
|
100
|
+
Parameters
|
|
101
|
+
----------
|
|
102
|
+
q : array_like
|
|
103
|
+
Probabilities in ``[0, 1]``.
|
|
104
|
+
loc : float, optional
|
|
105
|
+
Lower bound of the support. Defaults to ``0``.
|
|
106
|
+
scale : float, optional
|
|
107
|
+
Width of the support interval. Defaults to ``1``.
|
|
108
|
+
|
|
109
|
+
Returns
|
|
110
|
+
-------
|
|
111
|
+
FlopscopeArray
|
|
112
|
+
Quantiles corresponding to ``q``.
|
|
113
|
+
|
|
114
|
+
Notes
|
|
115
|
+
-----
|
|
116
|
+
Equivalent to ``scipy.stats.uniform.ppf(q, loc, scale)``.
|
|
117
|
+
FLOP cost: ``1 * numel(q)``.
|
|
118
|
+
|
|
119
|
+
Examples
|
|
120
|
+
--------
|
|
121
|
+
>>> import numpy as np
|
|
122
|
+
>>> import flopscope as flops
|
|
123
|
+
>>> q = np.array([0.25, 0.5, 0.75])
|
|
124
|
+
>>> np.round(flops.stats.uniform.ppf(q), 3)
|
|
125
|
+
array([0.25, 0.5 , 0.75])
|
|
126
|
+
"""
|
|
127
|
+
return self._deduct_and_call("ppf", 1, q, loc=loc, scale=scale)
|
|
128
|
+
|
|
129
|
+
def _compute_pdf(self, x, loc=0, scale=1):
|
|
130
|
+
return _np.where((x >= loc) & (x <= loc + scale), 1.0 / scale, 0.0)
|
|
131
|
+
|
|
132
|
+
def _compute_cdf(self, x, loc=0, scale=1):
|
|
133
|
+
return _np.clip((x - loc) / scale, 0.0, 1.0)
|
|
134
|
+
|
|
135
|
+
def _compute_ppf(self, q, loc=0, scale=1):
|
|
136
|
+
result = loc + q * scale
|
|
137
|
+
result = _np.where((q >= 0) & (q <= 1), result, _np.nan)
|
|
138
|
+
return result
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
uniform = UniformDistribution()
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: flopscope
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: NumPy-compatible math primitives with FLOP counting for the Mechanistic Estimation Challenge
|
|
5
|
+
License-Expression: MIT
|
|
6
|
+
Requires-Python: >=3.10
|
|
7
|
+
Requires-Dist: numpy<2.5.0,>=2.0.0
|
|
8
|
+
Requires-Dist: opt-einsum<4.0.0,>=3.3.0
|
|
9
|
+
Requires-Dist: rich>=14.3.3
|
|
10
|
+
Provides-Extra: dev
|
|
11
|
+
Requires-Dist: commitizen>=4.0; extra == 'dev'
|
|
12
|
+
Requires-Dist: gitlint>=0.19; extra == 'dev'
|
|
13
|
+
Requires-Dist: psutil>=5.9; extra == 'dev'
|
|
14
|
+
Requires-Dist: pyright<1.2.0,>=1.1.408; extra == 'dev'
|
|
15
|
+
Requires-Dist: pytest-cov; extra == 'dev'
|
|
16
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
17
|
+
Requires-Dist: rich>=13.0; extra == 'dev'
|
|
18
|
+
Requires-Dist: ruff>=0.4; extra == 'dev'
|
|
19
|
+
Requires-Dist: scipy>=1.10; extra == 'dev'
|
|
20
|
+
Provides-Extra: docs
|
|
21
|
+
Requires-Dist: numpydoc>=1.10; extra == 'docs'
|
|
22
|
+
Provides-Extra: sympy
|
|
23
|
+
Requires-Dist: sympy>=1.11; extra == 'sympy'
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
benchmarks/__init__.py,sha256=RZnUbw3s5l4w5Y8ewwzLqmGCTvmI7k31aP4u_269Xis,60
|
|
2
|
+
benchmarks/__main__.py,sha256=YAbHamE3swHF4rI-ntt9LayADFqwLtFSchflDWk1LaM,132
|
|
3
|
+
benchmarks/_baseline.py,sha256=N43k51w8iEOGdsxahae6qdj0P2sxF-HA-4pN3_b-GQU,6193
|
|
4
|
+
benchmarks/_bitwise.py,sha256=Imnqe-iZYjo5S2Zfvth8pt0MLyMJjcxcP667qiAOm6s,7162
|
|
5
|
+
benchmarks/_complex.py,sha256=ztJKgJL2FLHUvWfEjKbEFx2Ev39DwCbc16YpAc1Rw98,5744
|
|
6
|
+
benchmarks/_contractions.py,sha256=_5QmdE02NAPhWCQMd8mfCSit7UGXxkl5FfM2mVZ1htM,11529
|
|
7
|
+
benchmarks/_fft.py,sha256=H-g6OkUu0LhPJlFL60kzrbgOCapUY7jWUmILunSzIS0,6419
|
|
8
|
+
benchmarks/_impl_urls.py,sha256=tzTBbnaAn9r6t7EO1Yz-C4KdW_3L4BNgmk-aWWs0YSY,4705
|
|
9
|
+
benchmarks/_linalg.py,sha256=JvKfysbi9nNdpgvZKY4Iq8YpnoXaf4weuoAw7fFY3rY,6375
|
|
10
|
+
benchmarks/_linalg_delegates.py,sha256=yjg8NKuZw9j6NAuX8bsbUCCVlp0OTIUkmxo1gLieLz8,16930
|
|
11
|
+
benchmarks/_metadata.py,sha256=xYHXgtTkj8HhzvtIo2plzK5AOMIOnUHdbNH_1VUAmW0,4294
|
|
12
|
+
benchmarks/_misc.py,sha256=7mon_34ooBMn00N0BH4oyXgiXGRUMd7NyiD1Z4-9uX0,22158
|
|
13
|
+
benchmarks/_perf.py,sha256=gaOpiUXIz2efK0j2zqmBCrp9ieVriJZ11mDzxVDIqy0,10158
|
|
14
|
+
benchmarks/_perm_group_calibration.py,sha256=CyhWAmUxX78jVt-vmYQDfLOqTjEJMyS2hM6EQZkimSw,5368
|
|
15
|
+
benchmarks/_pointwise.py,sha256=pwDLlW3Wwt0Z2d53L01Z3FJUxJ2k5cxX_oraPrJxnlc,11290
|
|
16
|
+
benchmarks/_polynomial.py,sha256=rWZWJKTkpT7tx3KqfihAzHMEiaCs_U0-Nvpz5De2xr0,6621
|
|
17
|
+
benchmarks/_random.py,sha256=t7V4wnjZOVljMEMmimZSnzxfYKkJtSSRoI8t8uwZX5U,6612
|
|
18
|
+
benchmarks/_reductions.py,sha256=G29rMFYN7i8m7DmS8U9f6sWUCrBcAVXhEJP4zfJULOA,3824
|
|
19
|
+
benchmarks/_sorting.py,sha256=RCNGPfMRCQ6ui2J1h5IMU_C-DfQc4rZGw4AWG2x2O00,11236
|
|
20
|
+
benchmarks/_stats.py,sha256=Sdi6KX3HmefrOew4zg9FufHWqgGoNMeaZTKUu6Jn-UE,4391
|
|
21
|
+
benchmarks/_window.py,sha256=UfPRXpFzYNpA4bWf49EysyHkL66SG-e8ZoG_m8_tJX0,2805
|
|
22
|
+
benchmarks/dashboard.py,sha256=cWK0QR-Cdr29rhSjPDITHms5LCKrUDtIV3OddvX_uxU,9804
|
|
23
|
+
benchmarks/runner.py,sha256=TvH6tS2Bmd3G196RgseiQzlbZckWIgKvw-2i9k5GCeg,21825
|
|
24
|
+
benchmarks/accumulation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
+
benchmarks/accumulation/bench_cost_compute.py,sha256=S2vdIQzXRCxVShdYyoqQDOSO-sAk70_yoEVRNH3IrvE,4244
|
|
26
|
+
flopscope/__init__.py,sha256=0j_YkKcDJkPuK1zD5Vh2gZge5s74GXnRl6s3XP6GrnA,8325
|
|
27
|
+
flopscope/_budget.py,sha256=JbLLzT3IQGJ-CrjqyD7ylWyYxWPl7gYrK5d_lhes0sY,37404
|
|
28
|
+
flopscope/_config.py,sha256=0MEhuO33TJ0EOieaow1altgPAyRtRN7GmHASWzLZceY,4367
|
|
29
|
+
flopscope/_counting_ops.py,sha256=MVj8jkdsm7ejed0VCweHx6CEed8znwwdh7w7AiGFkIU,14200
|
|
30
|
+
flopscope/_display.py,sha256=adUvMIJ9atwVSgZhRh-Eo2FCTN6SnqpdGSKRcc4vdck,15948
|
|
31
|
+
flopscope/_docstrings.py,sha256=vZgFdn2P5s4PJceZgceuODAyivFKNw4MXDS1nfBNzbk,1838
|
|
32
|
+
flopscope/_dtypes.py,sha256=cMf7Md1j-M8-Ne2wr5-UY9XiZcLFIFhq1n-nxNz9UJQ,481
|
|
33
|
+
flopscope/_einsum.py,sha256=WVAsoNqnMvo4f1jUJaFhZ1Sanh6uPxnV4x1o2gJTfW4,26008
|
|
34
|
+
flopscope/_errstate.py,sha256=1rUw0t6ZvH6clq-9ZaA5Hv72km_eV-TzVUyirkP92vw,628
|
|
35
|
+
flopscope/_flops.py,sha256=gn3LS-4A6HvsITWsi1ePKpHpI__UrK6RYXAn1SsqPrk,7906
|
|
36
|
+
flopscope/_free_ops.py,sha256=-PyZlmC3YYppBla7jl5qFirTDZo7qCHsogK9cI-IR6w,90408
|
|
37
|
+
flopscope/_ndarray.py,sha256=u6pzANC6bg1bOB6ztFva_EoO9QlSxEKU-nIAQbP00Dk,42739
|
|
38
|
+
flopscope/_perm_group.py,sha256=hB3daQ72hmcjqcg2J4nARGGybwBVYtPs21azwFAcqUI,24984
|
|
39
|
+
flopscope/_pointwise.py,sha256=e_UNYsFbk7QMOo7geJ9n1fXrPX60E16w6f8mAJSMgP4,97006
|
|
40
|
+
flopscope/_polynomial.py,sha256=O-qcy9VDV2DdvAk0EQPNp2Jtavrv3jZKwL0_xZeZ8fU,8725
|
|
41
|
+
flopscope/_registry.py,sha256=WK-VByiHqXS5jt1TalQzqoPNcjA57kBE55Cot0u0_j8,106862
|
|
42
|
+
flopscope/_sorting_ops.py,sha256=3n6eqzEnzC3Nsex-rLi5ic5RWxGB2050JviXlv9vIsA,18154
|
|
43
|
+
flopscope/_symmetric.py,sha256=iWhsnLLzqfk4pytdbYRFq8najwqrDrXg7ROrLLbRQRI,26716
|
|
44
|
+
flopscope/_symmetry_transport.py,sha256=80pQ5ibO7A2BomYZX9_vMycNKOdQfsfmW0fXCb63PJg,14786
|
|
45
|
+
flopscope/_symmetry_utils.py,sha256=_5DfbFJM7RUfAT4IcdPNAfLJskW5bl9b0Hl6T48cv8s,23719
|
|
46
|
+
flopscope/_type_info.py,sha256=h2xO0GddV65YmxnaYTLOyTjsHRnJbSmj6jmxp8EaTn0,294
|
|
47
|
+
flopscope/_unwrap.py,sha256=McmUuZm-B6miWDMqFoPBctToWMF9QjzL5yvaGKL044M,2083
|
|
48
|
+
flopscope/_validation.py,sha256=PLBCO2RlExFWL9MtzFJi422ueLq5cJXm2aCxVJU14jo,2850
|
|
49
|
+
flopscope/_version_check.py,sha256=KAZOUN1i9-MptMLd8HAwR5gxBbdtVew_UyzvAYFHrgY,1382
|
|
50
|
+
flopscope/_weights.py,sha256=BZSHv76W_Kyk5KgUsALop8gh2-wy4r983RXjXdfJCq4,6664
|
|
51
|
+
flopscope/_window.py,sha256=FeNRi90lYkV_frFv3e7j55d1rda5oYRoQ49kmzf6F0s,4062
|
|
52
|
+
flopscope/accounting.py,sha256=sVUpcf5sA_Dak8oeLmtXnqb-DFQRUE6lqGNazR_ZlAQ,17616
|
|
53
|
+
flopscope/errors.py,sha256=Q82PY0mo5E3vEqc6wYD7dknL3MeXmjQKB6ulY80tEpE,6746
|
|
54
|
+
flopscope/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
+
flopscope/_accumulation/__init__.py,sha256=YzZVgUEu3KLL25DnrEyD1WmIBprSAhYzzptoFBlwPPY,379
|
|
56
|
+
flopscope/_accumulation/_bipartite.py,sha256=toVMMchSWPYw1hVO1uy6O8pq9uJH_G7HS12Wyloet4k,3911
|
|
57
|
+
flopscope/_accumulation/_burnside.py,sha256=a_Wjmc9CcfYGwfhmxiRL43RSyl-McylF18vLHCLQpOs,1847
|
|
58
|
+
flopscope/_accumulation/_cache.py,sha256=hTa0We0A7go4lJO9am8wsVaULt20YA8d7r0ahAAM4k8,4388
|
|
59
|
+
flopscope/_accumulation/_components.py,sha256=4WxkYFeXquGC_BPZ6ADR0E8I1xPAUhl0Dr0z82lneeU,4939
|
|
60
|
+
flopscope/_accumulation/_cost.py,sha256=4CQZPJq9Ut_FbGKIQGZOvTxhQ4iuWmwZAIVPM3FtNL4,59415
|
|
61
|
+
flopscope/_accumulation/_cost_descriptions.py,sha256=xC7g5OkkxBcxHwm8C9LOH4Q65LaLrAAuJhusEz5k9a0,2276
|
|
62
|
+
flopscope/_accumulation/_detection.py,sha256=Hw7uGFi-WxxVuW4rrmeDKuxX924SWsUNqEB4nxdH92U,10418
|
|
63
|
+
flopscope/_accumulation/_ladder.py,sha256=3_EsEcP7_-_hmUiBiKDuZr_u3U--mLHHGbIIe_fEPAw,5557
|
|
64
|
+
flopscope/_accumulation/_output_orbit.py,sha256=9CQ_5yo5TGvUcdTp3E30DrkM2dYVf6W1BEAPBLVJgGw,3743
|
|
65
|
+
flopscope/_accumulation/_partition.py,sha256=HZe8OQ2ltgHBJqIJgLLr9b3HwX3ek3vBV15XCWXmaC4,10197
|
|
66
|
+
flopscope/_accumulation/_path_info.py,sha256=3aZu4CPn3zeWDXM-vqgE__AEtXL7kKUg6ZrA3whvWVo,9392
|
|
67
|
+
flopscope/_accumulation/_public.py,sha256=9XkTWNNTRZ-jEE-DrPeK2euOMmuzkj6apNX9pw5ASO4,5946
|
|
68
|
+
flopscope/_accumulation/_reduction.py,sha256=CRiqyhAQGLURZXzCyImQyuk_0Y9CmLp41AtaPkZPHeE,10863
|
|
69
|
+
flopscope/_accumulation/_regimes.py,sha256=ExXNuoBCAn5VyuU1UtfJWKMshZp8U1kgIREMOU9Gl2Q,9762
|
|
70
|
+
flopscope/_accumulation/_shape.py,sha256=bvc3oVuZqtLEJg5aBdsNgQRCSDUtFLB0heViDNv2rw0,986
|
|
71
|
+
flopscope/_accumulation/_wreath.py,sha256=1ph3S1sZE8hsZOZC4qua3ZK1DYBZUyncOFnT-ad6wnM,7588
|
|
72
|
+
flopscope/_opt_einsum/LICENSE,sha256=M4BrzE2k4y29r06g5ACtxyqwx3HQl5bR94rowAEkuXU,1079
|
|
73
|
+
flopscope/_opt_einsum/NOTICE,sha256=l1VyuGdz-UqCSHofPePM4fQaxCq2tNYUbzXH8xWtdIs,2951
|
|
74
|
+
flopscope/_opt_einsum/__init__.py,sha256=MT2Xi_7DYPRLK7GUBAkgdihYsSjWRQBA15dSv3eGm6c,7494
|
|
75
|
+
flopscope/_opt_einsum/_contract.py,sha256=2xrUX6yO-ecZiDn54OV766RRi-5wtSrNBP5-kh5181k,59541
|
|
76
|
+
flopscope/_opt_einsum/_helpers.py,sha256=k0WV306l7soRK1tPt6T1EgEZ6h2PETMxR1qctx1f9PA,5151
|
|
77
|
+
flopscope/_opt_einsum/_hsluv.py,sha256=rMkG5zNiNry-rW6mQMzF5lF60b6KPAMnQLzTHymuwW8,7539
|
|
78
|
+
flopscope/_opt_einsum/_path_random.py,sha256=NKgnANLcp5MjFajlcxhKil83WZMM9xx9CHj4Rw0QPyo,16011
|
|
79
|
+
flopscope/_opt_einsum/_paths.py,sha256=yjse-F4Sqqv5Py-gvSo-iSNs4K8rm7B1DWlmAMHThFU,59183
|
|
80
|
+
flopscope/_opt_einsum/_subgraph_symmetry.py,sha256=LYAo2MUQF6CibcpEbeZ97FuQZ1C669WbfJMrehm8o-g,21613
|
|
81
|
+
flopscope/_opt_einsum/_symmetry.py,sha256=-MQ250mZraKvArUQgGcbw-NFCREeizuohaFT73mPCkw,4991
|
|
82
|
+
flopscope/_opt_einsum/_typing.py,sha256=V9WLJSp1wetVQ_5qkT72c060d-Xrc6TxkFjNLNov_vU,894
|
|
83
|
+
flopscope/data/weights.csv,sha256=3sSP3wPa1rkArxoprsj_F2T4bLDnxOuXrxIybTHGeKc,138719
|
|
84
|
+
flopscope/numpy/__init__.py,sha256=YUGWXVRhkNo_rSRXJboHFTYN-4JjFywUWRrH0yIlDI4,14137
|
|
85
|
+
flopscope/numpy/fft/__init__.py,sha256=3BwCxSxPB6rA8IT13ngLK7iyrhCy-9necVQKa76l24w,866
|
|
86
|
+
flopscope/numpy/fft/_free.py,sha256=xrX4t3Pdxqp5TCgwScEcKIP6jX_I8-xNutHSivzukZI,1686
|
|
87
|
+
flopscope/numpy/fft/_transforms.py,sha256=qB7eiDRjDwnwBGX_R6aJHur7qBozzoqcGEhn74lKnOg,20748
|
|
88
|
+
flopscope/numpy/linalg/__init__.py,sha256=2leKPrWX3GyNqw2DqPfy204qSlKebzsP4RZCNn2TJ4k,1876
|
|
89
|
+
flopscope/numpy/linalg/_aliases.py,sha256=EEgv5I12TvhQs3Uj_vjQ-7-RQobUodtvyqN0LJ4fv50,4156
|
|
90
|
+
flopscope/numpy/linalg/_compound.py,sha256=10Uj8mY-ipjukVP0iYagJ8slVqiav8zgAjVbcO1rqRA,5275
|
|
91
|
+
flopscope/numpy/linalg/_decompositions.py,sha256=XU6ni9qC7a7Km6dyr6KuboRrwr0QWbQMIXSvTxBDOCc,10804
|
|
92
|
+
flopscope/numpy/linalg/_properties.py,sha256=PE3PcZGHWeUJwmCkKHSjkO5OwpAcGEQsyYx4hQYEo3w,16585
|
|
93
|
+
flopscope/numpy/linalg/_solvers.py,sha256=uci2P0ECE2AzGaEs4C5Q3BnAoc-6iv46XP7fEQdAwPI,13969
|
|
94
|
+
flopscope/numpy/linalg/_svd.py,sha256=PJZ4Rg_HmERMbINZBw_UPsUcdnpqNzT7bdmAJ3UHJbo,4141
|
|
95
|
+
flopscope/numpy/random/__init__.py,sha256=3XbYo5XN5Wc3YZ3WbVWQ_nMgLjnf1WI9LU-KbZ65j9k,23099
|
|
96
|
+
flopscope/numpy/random/_cost_formulas.py,sha256=6AeY5uwLo5O0CMrLnC3mBWDiJowajR4im_N8WY-PuYg,3730
|
|
97
|
+
flopscope/numpy/random/_counted_classes.py,sha256=cP5sn3WK0fnDL84m-J8kcuwqDzx-UtAdfckKzXiNav8,9431
|
|
98
|
+
flopscope/numpy/testing/__init__.py,sha256=ClUxip9j1kf_9ek7BUpg6IgVwcKLw5abXx1SnGqNcoI,349
|
|
99
|
+
flopscope/numpy/typing/__init__.py,sha256=t2oXgv05PsNZNwBwuv67hKo1Dg2bwJK1X1k7Yrrw0Hk,772
|
|
100
|
+
flopscope/stats/__init__.py,sha256=1MsD98eaRmHF6fRiq0HSbw5c0mwFRVe1wRGxBeQqSJI,2715
|
|
101
|
+
flopscope/stats/_base.py,sha256=ihqgfM0H3m1oOGISGYVRfhhTxK4noHlGf693UXlpmCo,2345
|
|
102
|
+
flopscope/stats/_cauchy.py,sha256=p4dsTWkSCuJfHmK_Jox6yysMy3p-I4rK4qHg-FM-b-U,4339
|
|
103
|
+
flopscope/stats/_erf.py,sha256=TN11_bhZgfw4VBcIKYVHhWaxjhn6Z-u31BIlte-qo70,6040
|
|
104
|
+
flopscope/stats/_expon.py,sha256=DykKqCFHWcgLwuq_8THk6nVVunBKaMgaPUlWinxntVY,4340
|
|
105
|
+
flopscope/stats/_laplace.py,sha256=WQFhG02cbELQff8JyT9C8Ocg8uMOy6_f_vO8Ta7H2Jg,4549
|
|
106
|
+
flopscope/stats/_logistic.py,sha256=_sl6OZNEHjzshB-sj9XMbFo80iajWnHfyZSCN94Hbc4,4441
|
|
107
|
+
flopscope/stats/_lognorm.py,sha256=J5yIuAtt3eO1nIl44fLuzs2y9ac4QkvFtd9HTt6KxUs,4867
|
|
108
|
+
flopscope/stats/_ndtri.py,sha256=J-3gERFo3U-T54vT6QYP9FPqZI791KtSsHggPRlIyXc,3944
|
|
109
|
+
flopscope/stats/_norm.py,sha256=yjh-1o3-CEckpuYtuXJIX9gwGNYxbPqcXiYd1wzDRis,4341
|
|
110
|
+
flopscope/stats/_truncnorm.py,sha256=b3UfslprmlH5T2I6LBAC1I2L--mxqLyd8CcAp_3v9UU,5761
|
|
111
|
+
flopscope/stats/_uniform.py,sha256=QHbICh3VG4N3KyvHlgUsU7AaKcuQX6LYhq6_mOL6RW8,4123
|
|
112
|
+
flopscope/data/default_weights.json,sha256=wK89RQ4QNqn9XAhLNWWBqRnMQZJButvzGz70o3xenbE,10505
|
|
113
|
+
flopscope-0.2.0.dist-info/METADATA,sha256=xZl-ql4uXYxmWn2m5SG2LKSFKuZUjbyDX_BnUGK2tHY,862
|
|
114
|
+
flopscope-0.2.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
115
|
+
flopscope-0.2.0.dist-info/RECORD,,
|