egglog 6.0.0__cp310-none-win_amd64.whl → 6.1.0__cp310-none-win_amd64.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.
Potentially problematic release.
This version of egglog might be problematic. Click here for more details.
- egglog/bindings.cp310-win_amd64.pyd +0 -0
- egglog/bindings.pyi +25 -4
- egglog/builtins.py +116 -232
- egglog/declarations.py +11 -2
- egglog/egraph.py +66 -99
- egglog/examples/bool.py +1 -2
- egglog/examples/eqsat_basic.py +5 -8
- egglog/examples/fib.py +2 -2
- egglog/examples/lambda_.py +14 -26
- egglog/examples/matrix.py +2 -2
- egglog/examples/ndarrays.py +15 -28
- egglog/examples/resolution.py +1 -0
- egglog/examples/schedule_demo.py +1 -0
- egglog/exp/array_api.py +158 -307
- egglog/exp/array_api_numba.py +9 -12
- egglog/exp/array_api_program_gen.py +21 -44
- egglog/exp/program_gen.py +1 -0
- egglog/runtime.py +1 -1
- egglog/type_constraint_solver.py +1 -0
- {egglog-6.0.0.dist-info → egglog-6.1.0.dist-info}/METADATA +14 -14
- egglog-6.1.0.dist-info/RECORD +34 -0
- egglog-6.0.0.dist-info/RECORD +0 -34
- {egglog-6.0.0.dist-info → egglog-6.1.0.dist-info}/WHEEL +0 -0
- {egglog-6.0.0.dist-info → egglog-6.1.0.dist-info}/license_files/LICENSE +0 -0
egglog/exp/array_api_numba.py
CHANGED
|
@@ -9,13 +9,10 @@ from egglog import *
|
|
|
9
9
|
from egglog.exp.array_api import *
|
|
10
10
|
|
|
11
11
|
array_api_numba_ruleset = ruleset()
|
|
12
|
-
array_api_numba_schedule = (
|
|
13
|
-
# For these rules, we not only wanna rewrite, we also want to
|
|
12
|
+
array_api_numba_schedule = (array_api_ruleset + array_api_numba_ruleset).saturate()
|
|
13
|
+
# For these rules, we not only wanna rewrite, we also want to subsume the original expression,
|
|
14
14
|
# so that the rewritten one is used, even if the original one is simpler.
|
|
15
15
|
|
|
16
|
-
# TODO: Try deleting instead if we support that in the future, and remove high cost
|
|
17
|
-
# https://egraphs.zulipchat.com/#narrow/stream/375765-egglog/topic/replacing.20an.20expression.20with.20delete
|
|
18
|
-
|
|
19
16
|
|
|
20
17
|
# Rewrite mean(x, <int>, <expand dims>) to use sum b/c numba cant do mean with axis
|
|
21
18
|
# https://github.com/numba/numba/issues/1269
|
|
@@ -24,8 +21,8 @@ def _mean(y: NDArray, x: NDArray, i: Int):
|
|
|
24
21
|
axis = OptionalIntOrTuple.some(IntOrTuple.int(i))
|
|
25
22
|
res = sum(x, axis) / NDArray.scalar(Value.int(x.shape[i]))
|
|
26
23
|
|
|
27
|
-
yield rewrite(mean(x, axis, FALSE)).to(res)
|
|
28
|
-
yield rewrite(mean(x, axis, TRUE)).to(expand_dims(res, i))
|
|
24
|
+
yield rewrite(mean(x, axis, FALSE), subsume=True).to(res)
|
|
25
|
+
yield rewrite(mean(x, axis, TRUE), subsume=True).to(expand_dims(res, i))
|
|
29
26
|
|
|
30
27
|
|
|
31
28
|
# Rewrite std(x, <int>) to use mean and sum b/c numba cant do std with axis
|
|
@@ -34,7 +31,7 @@ def _std(y: NDArray, x: NDArray, i: Int):
|
|
|
34
31
|
axis = OptionalIntOrTuple.some(IntOrTuple.int(i))
|
|
35
32
|
# https://numpy.org/doc/stable/reference/generated/numpy.std.html
|
|
36
33
|
# "std = sqrt(mean(x)), where x = abs(a - a.mean())**2."
|
|
37
|
-
yield rewrite(std(x, axis)).to(sqrt(mean(square(x - mean(x, axis, keepdims=TRUE)), axis)))
|
|
34
|
+
yield rewrite(std(x, axis), subsume=True).to(sqrt(mean(square(x - mean(x, axis, keepdims=TRUE)), axis)))
|
|
38
35
|
|
|
39
36
|
|
|
40
37
|
# rewrite unique_counts to count each value one by one, since numba doesn't support np.unique(..., return_counts=True)
|
|
@@ -49,11 +46,11 @@ def count_values(x: NDArray, values: NDArray) -> TupleValue:
|
|
|
49
46
|
def _unique_counts(x: NDArray, c: NDArray, tv: TupleValue, v: Value):
|
|
50
47
|
return [
|
|
51
48
|
# The unique counts are the count of all the unique values
|
|
52
|
-
rewrite(unique_counts(x)[Int(1)]).to(NDArray.vector(count_values(x, unique_values(x)))),
|
|
53
|
-
rewrite(count_values(x, NDArray.vector(TupleValue(v) + tv))).to(
|
|
49
|
+
rewrite(unique_counts(x)[Int(1)], subsume=True).to(NDArray.vector(count_values(x, unique_values(x)))),
|
|
50
|
+
rewrite(count_values(x, NDArray.vector(TupleValue(v) + tv)), subsume=True).to(
|
|
54
51
|
TupleValue(sum(x == NDArray.scalar(v)).to_value()) + count_values(x, NDArray.vector(tv))
|
|
55
52
|
),
|
|
56
|
-
rewrite(count_values(x, NDArray.vector(TupleValue(v)))).to(
|
|
53
|
+
rewrite(count_values(x, NDArray.vector(TupleValue(v))), subsume=True).to(
|
|
57
54
|
TupleValue(sum(x == NDArray.scalar(v)).to_value()),
|
|
58
55
|
),
|
|
59
56
|
]
|
|
@@ -64,7 +61,7 @@ def _unique_counts(x: NDArray, c: NDArray, tv: TupleValue, v: Value):
|
|
|
64
61
|
def _unique_inverse(x: NDArray, i: Int):
|
|
65
62
|
return [
|
|
66
63
|
# Creating a mask array of when the unique inverse is a value is the same as a mask array for when the value is that index of the unique values
|
|
67
|
-
rewrite(unique_inverse(x)[Int(1)] == NDArray.scalar(Value.int(i))).to(
|
|
64
|
+
rewrite(unique_inverse(x)[Int(1)] == NDArray.scalar(Value.int(i)), subsume=True).to(
|
|
68
65
|
x == NDArray.scalar(unique_values(x).index(TupleInt(i)))
|
|
69
66
|
),
|
|
70
67
|
]
|
|
@@ -15,12 +15,11 @@ from .program_gen import *
|
|
|
15
15
|
|
|
16
16
|
array_api_program_gen_ruleset = ruleset()
|
|
17
17
|
|
|
18
|
-
array_api_program_gen_schedule = array_api_program_gen_ruleset
|
|
18
|
+
array_api_program_gen_schedule = array_api_program_gen_ruleset.saturate() + program_gen_ruleset.saturate()
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
@function
|
|
22
|
-
def bool_program(x: Boolean) -> Program:
|
|
23
|
-
...
|
|
22
|
+
def bool_program(x: Boolean) -> Program: ...
|
|
24
23
|
|
|
25
24
|
|
|
26
25
|
@array_api_program_gen_ruleset.register
|
|
@@ -30,8 +29,7 @@ def _bool_program():
|
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
@function
|
|
33
|
-
def int_program(x: Int) -> Program:
|
|
34
|
-
...
|
|
32
|
+
def int_program(x: Int) -> Program: ...
|
|
35
33
|
|
|
36
34
|
|
|
37
35
|
@array_api_program_gen_ruleset.register
|
|
@@ -55,17 +53,14 @@ def _int_program(i64_: i64, i: Int, j: Int):
|
|
|
55
53
|
yield rewrite(int_program(i << j)).to(Program("(") + int_program(i) + " << " + int_program(j) + ")")
|
|
56
54
|
yield rewrite(int_program(i >> j)).to(Program("(") + int_program(i) + " >> " + int_program(j) + ")")
|
|
57
55
|
yield rewrite(int_program(i // j)).to(Program("(") + int_program(i) + " // " + int_program(j) + ")")
|
|
58
|
-
yield rewrite(int_program(Int(i64_))).to(Program(i64_.to_string()))
|
|
59
56
|
|
|
60
57
|
|
|
61
58
|
@function
|
|
62
|
-
def tuple_int_program(x: TupleInt) -> Program:
|
|
63
|
-
...
|
|
59
|
+
def tuple_int_program(x: TupleInt) -> Program: ...
|
|
64
60
|
|
|
65
61
|
|
|
66
62
|
@function
|
|
67
|
-
def tuple_int_program_inner(x: TupleInt) -> Program:
|
|
68
|
-
...
|
|
63
|
+
def tuple_int_program_inner(x: TupleInt) -> Program: ...
|
|
69
64
|
|
|
70
65
|
|
|
71
66
|
@array_api_program_gen_ruleset.register
|
|
@@ -80,13 +75,11 @@ def _tuple_int_program(i: Int, j: Int, ti: TupleInt, ti1: TupleInt, ti2: TupleIn
|
|
|
80
75
|
|
|
81
76
|
|
|
82
77
|
@function
|
|
83
|
-
def ndarray_program(x: NDArray) -> Program:
|
|
84
|
-
...
|
|
78
|
+
def ndarray_program(x: NDArray) -> Program: ...
|
|
85
79
|
|
|
86
80
|
|
|
87
81
|
@function
|
|
88
|
-
def ndarray_function_two(res: NDArray, l: NDArray, r: NDArray) -> Program:
|
|
89
|
-
...
|
|
82
|
+
def ndarray_function_two(res: NDArray, l: NDArray, r: NDArray) -> Program: ...
|
|
90
83
|
|
|
91
84
|
|
|
92
85
|
@array_api_program_gen_ruleset.register
|
|
@@ -99,8 +92,7 @@ def _ndarray_function_two(f: Program, res: NDArray, l: NDArray, r: NDArray, o: P
|
|
|
99
92
|
|
|
100
93
|
|
|
101
94
|
@function
|
|
102
|
-
def dtype_program(x: DType) -> Program:
|
|
103
|
-
...
|
|
95
|
+
def dtype_program(x: DType) -> Program: ...
|
|
104
96
|
|
|
105
97
|
|
|
106
98
|
@array_api_program_gen_ruleset.register
|
|
@@ -114,8 +106,7 @@ def _dtype_program():
|
|
|
114
106
|
|
|
115
107
|
|
|
116
108
|
@function
|
|
117
|
-
def float_program(x: Float) -> Program:
|
|
118
|
-
...
|
|
109
|
+
def float_program(x: Float) -> Program: ...
|
|
119
110
|
|
|
120
111
|
|
|
121
112
|
@array_api_program_gen_ruleset.register
|
|
@@ -137,8 +128,7 @@ def _float_program(f: Float, g: Float, f64_: f64, i: Int, r: Rational):
|
|
|
137
128
|
|
|
138
129
|
|
|
139
130
|
@function
|
|
140
|
-
def value_program(x: Value) -> Program:
|
|
141
|
-
...
|
|
131
|
+
def value_program(x: Value) -> Program: ...
|
|
142
132
|
|
|
143
133
|
|
|
144
134
|
@array_api_program_gen_ruleset.register
|
|
@@ -155,13 +145,11 @@ def _value_program(i: Int, b: Boolean, f: Float, x: NDArray, v1: Value, v2: Valu
|
|
|
155
145
|
|
|
156
146
|
|
|
157
147
|
@function
|
|
158
|
-
def tuple_value_program(x: TupleValue) -> Program:
|
|
159
|
-
...
|
|
148
|
+
def tuple_value_program(x: TupleValue) -> Program: ...
|
|
160
149
|
|
|
161
150
|
|
|
162
151
|
@function
|
|
163
|
-
def tuple_value_program_inner(x: TupleValue) -> Program:
|
|
164
|
-
...
|
|
152
|
+
def tuple_value_program_inner(x: TupleValue) -> Program: ...
|
|
165
153
|
|
|
166
154
|
|
|
167
155
|
@array_api_program_gen_ruleset.register
|
|
@@ -174,8 +162,7 @@ def _tuple_value_program(tv1: TupleValue, tv2: TupleValue, v: Value):
|
|
|
174
162
|
|
|
175
163
|
|
|
176
164
|
@function
|
|
177
|
-
def tuple_ndarray_program(x: TupleNDArray) -> Program:
|
|
178
|
-
...
|
|
165
|
+
def tuple_ndarray_program(x: TupleNDArray) -> Program: ...
|
|
179
166
|
|
|
180
167
|
|
|
181
168
|
@function
|
|
@@ -198,8 +185,7 @@ def _tuple_ndarray_program(x: NDArray, l: TupleNDArray, r: TupleNDArray, i: Int)
|
|
|
198
185
|
|
|
199
186
|
|
|
200
187
|
@function
|
|
201
|
-
def optional_dtype_program(x: OptionalDType) -> Program:
|
|
202
|
-
...
|
|
188
|
+
def optional_dtype_program(x: OptionalDType) -> Program: ...
|
|
203
189
|
|
|
204
190
|
|
|
205
191
|
@array_api_program_gen_ruleset.register
|
|
@@ -209,8 +195,7 @@ def _optional_dtype_program(dtype: DType):
|
|
|
209
195
|
|
|
210
196
|
|
|
211
197
|
@function
|
|
212
|
-
def optional_int_program(x: OptionalInt) -> Program:
|
|
213
|
-
...
|
|
198
|
+
def optional_int_program(x: OptionalInt) -> Program: ...
|
|
214
199
|
|
|
215
200
|
|
|
216
201
|
@array_api_program_gen_ruleset.register
|
|
@@ -233,8 +218,7 @@ def _optional_int_slice_program(x: Int):
|
|
|
233
218
|
|
|
234
219
|
|
|
235
220
|
@function
|
|
236
|
-
def slice_program(x: Slice) -> Program:
|
|
237
|
-
...
|
|
221
|
+
def slice_program(x: Slice) -> Program: ...
|
|
238
222
|
|
|
239
223
|
|
|
240
224
|
@array_api_program_gen_ruleset.register
|
|
@@ -248,8 +232,7 @@ def _slice_program(start: OptionalInt, stop: OptionalInt, i: Int):
|
|
|
248
232
|
|
|
249
233
|
|
|
250
234
|
@function
|
|
251
|
-
def multi_axis_index_key_item_program(x: MultiAxisIndexKeyItem) -> Program:
|
|
252
|
-
...
|
|
235
|
+
def multi_axis_index_key_item_program(x: MultiAxisIndexKeyItem) -> Program: ...
|
|
253
236
|
|
|
254
237
|
|
|
255
238
|
@array_api_program_gen_ruleset.register
|
|
@@ -261,8 +244,7 @@ def _multi_axis_index_key_item_program(i: Int, s: Slice):
|
|
|
261
244
|
|
|
262
245
|
|
|
263
246
|
@function
|
|
264
|
-
def multi_axis_index_key_program(x: MultiAxisIndexKey) -> Program:
|
|
265
|
-
...
|
|
247
|
+
def multi_axis_index_key_program(x: MultiAxisIndexKey) -> Program: ...
|
|
266
248
|
|
|
267
249
|
|
|
268
250
|
@array_api_program_gen_ruleset.register
|
|
@@ -275,8 +257,7 @@ def _multi_axis_index_key_program(l: MultiAxisIndexKey, r: MultiAxisIndexKey, it
|
|
|
275
257
|
|
|
276
258
|
|
|
277
259
|
@function
|
|
278
|
-
def index_key_program(x: IndexKey) -> Program:
|
|
279
|
-
...
|
|
260
|
+
def index_key_program(x: IndexKey) -> Program: ...
|
|
280
261
|
|
|
281
262
|
|
|
282
263
|
@array_api_program_gen_ruleset.register
|
|
@@ -289,8 +270,7 @@ def _index_key_program(i: Int, s: Slice, key: MultiAxisIndexKey, a: NDArray):
|
|
|
289
270
|
|
|
290
271
|
|
|
291
272
|
@function
|
|
292
|
-
def int_or_tuple_program(x: IntOrTuple) -> Program:
|
|
293
|
-
...
|
|
273
|
+
def int_or_tuple_program(x: IntOrTuple) -> Program: ...
|
|
294
274
|
|
|
295
275
|
|
|
296
276
|
@array_api_program_gen_ruleset.register
|
|
@@ -300,8 +280,7 @@ def _int_or_tuple_program(x: Int, t: TupleInt):
|
|
|
300
280
|
|
|
301
281
|
|
|
302
282
|
@function
|
|
303
|
-
def optional_int_or_tuple_program(x: OptionalIntOrTuple) -> Program:
|
|
304
|
-
...
|
|
283
|
+
def optional_int_or_tuple_program(x: OptionalIntOrTuple) -> Program: ...
|
|
305
284
|
|
|
306
285
|
|
|
307
286
|
@array_api_program_gen_ruleset.register
|
|
@@ -481,8 +460,6 @@ def _ndarray_program(
|
|
|
481
460
|
)
|
|
482
461
|
# sqrt
|
|
483
462
|
yield rewrite(ndarray_program(sqrt(x))).to((Program("np.sqrt(") + ndarray_program(x) + ")").assign())
|
|
484
|
-
# square
|
|
485
|
-
yield rewrite(ndarray_program(square(x))).to((Program("np.square(") + ndarray_program(x) + ")").assign())
|
|
486
463
|
# Transpose
|
|
487
464
|
yield rewrite(ndarray_program(x.T)).to(ndarray_program(x) + ".T")
|
|
488
465
|
# sum
|
egglog/exp/program_gen.py
CHANGED
egglog/runtime.py
CHANGED
|
@@ -359,7 +359,7 @@ class RuntimeParamaterizedClass:
|
|
|
359
359
|
|
|
360
360
|
def __getattr__(self, name: str) -> RuntimeClassMethod | RuntimeClass:
|
|
361
361
|
# Special case so when get_type_annotations proccessed it can work
|
|
362
|
-
if name
|
|
362
|
+
if name == "__origin__":
|
|
363
363
|
return RuntimeClass(self.__egg_decls__.update_other, self.__egg_tp__.name)
|
|
364
364
|
return RuntimeClassMethod(self.__egg_decls__, class_to_ref(self), name)
|
|
365
365
|
|
egglog/type_constraint_solver.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: egglog
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.1.0
|
|
4
4
|
Classifier: Environment :: MacOS X
|
|
5
5
|
Classifier: Environment :: Win32 (MS Windows)
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -19,18 +19,6 @@ Classifier: Typing :: Typed
|
|
|
19
19
|
Requires-Dist: typing-extensions
|
|
20
20
|
Requires-Dist: black
|
|
21
21
|
Requires-Dist: graphviz
|
|
22
|
-
Requires-Dist: pydata-sphinx-theme; extra == 'docs'
|
|
23
|
-
Requires-Dist: myst-nb; extra == 'docs'
|
|
24
|
-
Requires-Dist: sphinx-autodoc-typehints; extra == 'docs'
|
|
25
|
-
Requires-Dist: sphinx-gallery; extra == 'docs'
|
|
26
|
-
Requires-Dist: nbconvert; extra == 'docs'
|
|
27
|
-
Requires-Dist: matplotlib; extra == 'docs'
|
|
28
|
-
Requires-Dist: anywidget; extra == 'docs'
|
|
29
|
-
Requires-Dist: seaborn; extra == 'docs'
|
|
30
|
-
Requires-Dist: egglog[array]; extra == 'docs'
|
|
31
|
-
Requires-Dist: line-profiler; extra == 'docs'
|
|
32
|
-
Requires-Dist: sphinxcontrib-mermaid; extra == 'docs'
|
|
33
|
-
Requires-Dist: ablog; extra == 'docs'
|
|
34
22
|
Requires-Dist: pre-commit; extra == 'dev'
|
|
35
23
|
Requires-Dist: ruff; extra == 'dev'
|
|
36
24
|
Requires-Dist: mypy; extra == 'dev'
|
|
@@ -47,10 +35,22 @@ Requires-Dist: egglog[array]; extra == 'test'
|
|
|
47
35
|
Requires-Dist: pytest-codspeed; extra == 'test'
|
|
48
36
|
Requires-Dist: pytest-benchmark; extra == 'test'
|
|
49
37
|
Requires-Dist: pytest-xdist; extra == 'test'
|
|
50
|
-
|
|
38
|
+
Requires-Dist: pydata-sphinx-theme; extra == 'docs'
|
|
39
|
+
Requires-Dist: myst-nb; extra == 'docs'
|
|
40
|
+
Requires-Dist: sphinx-autodoc-typehints; extra == 'docs'
|
|
41
|
+
Requires-Dist: sphinx-gallery; extra == 'docs'
|
|
42
|
+
Requires-Dist: nbconvert; extra == 'docs'
|
|
43
|
+
Requires-Dist: matplotlib; extra == 'docs'
|
|
44
|
+
Requires-Dist: anywidget; extra == 'docs'
|
|
45
|
+
Requires-Dist: seaborn; extra == 'docs'
|
|
46
|
+
Requires-Dist: egglog[array]; extra == 'docs'
|
|
47
|
+
Requires-Dist: line-profiler; extra == 'docs'
|
|
48
|
+
Requires-Dist: sphinxcontrib-mermaid; extra == 'docs'
|
|
49
|
+
Requires-Dist: ablog; extra == 'docs'
|
|
51
50
|
Provides-Extra: dev
|
|
52
51
|
Provides-Extra: array
|
|
53
52
|
Provides-Extra: test
|
|
53
|
+
Provides-Extra: docs
|
|
54
54
|
License-File: LICENSE
|
|
55
55
|
Summary: e-graphs in Python built around the the egglog rust library
|
|
56
56
|
License: MIT
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
egglog-6.1.0.dist-info/METADATA,sha256=1MhEh2rFwsmv5yqI6TZ2hoHfGwxUBSzFk1Z_slTV0HU,3838
|
|
2
|
+
egglog-6.1.0.dist-info/WHEEL,sha256=keLBtIOE7ZgLyd8Cijw37iqv72a2jhfxMdDu8Unr7zo,96
|
|
3
|
+
egglog-6.1.0.dist-info/license_files/LICENSE,sha256=TfaboMVZ81Q6OUaKjU7z6uVjSlcGKclLYcOpgDbm9_s,1091
|
|
4
|
+
egglog/bindings.pyi,sha256=YPGerQlOpSO6kHyIYTUh1hnOopy4cyAKMPtljr3a1rg,11514
|
|
5
|
+
egglog/builtins.py,sha256=lc7jWEjf5hUXzPRvo8pJrkGFIUBC0oLXV4U6WYXDrEw,11959
|
|
6
|
+
egglog/config.py,sha256=mALVaxh7zmGrbuyzaVKVmYKcu1lF703QsKJw8AF7gSM,176
|
|
7
|
+
egglog/declarations.py,sha256=JMivLe8Cwna3BsLgls9X_LU-ZQuFapyD-KkZpkf4Eq0,39062
|
|
8
|
+
egglog/egraph.py,sha256=y-vPuD0U1h8ajNrjy3V5q-r61j6yDtQbeOyDFaZy9eE,69677
|
|
9
|
+
egglog/examples/bool.py,sha256=pWZTjfXR1cFy3KcihLBU5AF5rn83ImORlhUUJ1YiAXc,733
|
|
10
|
+
egglog/examples/eqsat_basic.py,sha256=ORXFYYEDsEZK2IPhHtoFsd-LdjMiQi1nn7kix4Nam0s,1011
|
|
11
|
+
egglog/examples/fib.py,sha256=wAn-PjazxgHDkXAU4o2xTk_GtM_iGL0biV66vWM1st4,520
|
|
12
|
+
egglog/examples/lambda_.py,sha256=hQBOaSw_yorNcbkQVu2EhgSc0IZNWIny7asaOlcUk9s,8496
|
|
13
|
+
egglog/examples/matrix.py,sha256=_zmjgfFr2O_LjTcsTD-45_38Y_M1sP3AV39K6oFxAdw,5136
|
|
14
|
+
egglog/examples/ndarrays.py,sha256=T-wwef-n-3LDSjaO35zA8AZH5DXFFqq0XBSCQKEXV6E,4186
|
|
15
|
+
egglog/examples/README.rst,sha256=QrbfmivODBvUvmY3-dHarcbC6bEvwoqAfTDhiI-aJxU,237
|
|
16
|
+
egglog/examples/resolution.py,sha256=sKkbRI_v9XkQM0DriacKLINqKKDqYGFhvMCAS9tZbTA,2203
|
|
17
|
+
egglog/examples/schedule_demo.py,sha256=iJtIbcLaZ7zK8UalY0z7KAKMqYjQx0MKTsNF24lKtik,652
|
|
18
|
+
egglog/examples/__init__.py,sha256=KuhaJFOyz_rpUvEqZubsgLnv6rhQNE_AVFXA6bUnpdY,34
|
|
19
|
+
egglog/exp/array_api.py,sha256=ozOPzHzWBT6-5TFX4Flc9Em4I_WBywZZsekmadi06wg,40901
|
|
20
|
+
egglog/exp/array_api_jit.py,sha256=HIZzd0G17u-u_F4vfRdhoYvRo-ETx5HFO3RBcOfLcco,1287
|
|
21
|
+
egglog/exp/array_api_numba.py,sha256=b7pA3Mk0s0H5s0N5ZWofcWUXb4EVmnUZMEJk0EXyukw,2881
|
|
22
|
+
egglog/exp/array_api_program_gen.py,sha256=crgUYXXNhQdfTq31FSIpWLIfzNsgQD8ngg3OosCtIgg,19680
|
|
23
|
+
egglog/exp/program_gen.py,sha256=2qlfc-dVSNbPFQVl0eIzUzf-yw28AeaARa4PUC1xtRA,12257
|
|
24
|
+
egglog/exp/__init__.py,sha256=G9zeKUcPBgIhgUg1meC86OfZVFETYIugyHWseTcCe_0,52
|
|
25
|
+
egglog/graphviz_widget.py,sha256=YtI7LCFWHihDQ1qLvdj2SVYEcuZLSooFUYheunOTxdc,1339
|
|
26
|
+
egglog/ipython_magic.py,sha256=VA19xAb6Sz7-IxlJBbnZW_gVFDqaYNnvdMB9QitndjE,1254
|
|
27
|
+
egglog/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
egglog/runtime.py,sha256=0Vje8UZTbrHba5d1wjKocbHiio4MDPWraAOrLQXDj9Q,27484
|
|
29
|
+
egglog/type_constraint_solver.py,sha256=u-b2SZxptCxjYNcht_TQSAebIVEcf3P_-2-TJk8uaqs,5671
|
|
30
|
+
egglog/widget.css,sha256=WJS2M1wQdujhSTCakMa_ZXuoTPre1Uy1lPcvBE1LZQU,102
|
|
31
|
+
egglog/widget.js,sha256=UNOER3sYZ-bS7Qhw9S6qtpR81FuHa5DzXQaWWtQq334,2021
|
|
32
|
+
egglog/__init__.py,sha256=AGM-7H_Vx1Xb0Z-tc0C9Y8JbQxpa6hdYfhSU_dnT3Mw,244
|
|
33
|
+
egglog/bindings.cp310-win_amd64.pyd,sha256=M6YHB0Ef-G-xSpFHmIFtPa-sL8yQ2t_C_DfDoPjCJ0s,4991488
|
|
34
|
+
egglog-6.1.0.dist-info/RECORD,,
|
egglog-6.0.0.dist-info/RECORD
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
egglog-6.0.0.dist-info/METADATA,sha256=wczdsyl7j4F3B-SwN7_VX3SDAkQV-0TrbqR9FE4BZ7Q,3838
|
|
2
|
-
egglog-6.0.0.dist-info/WHEEL,sha256=keLBtIOE7ZgLyd8Cijw37iqv72a2jhfxMdDu8Unr7zo,96
|
|
3
|
-
egglog-6.0.0.dist-info/license_files/LICENSE,sha256=TfaboMVZ81Q6OUaKjU7z6uVjSlcGKclLYcOpgDbm9_s,1091
|
|
4
|
-
egglog/bindings.pyi,sha256=ozrs-Oau7dSNnU9x1iTZWmuqJSXnepQ_fYR18JKlaWA,11073
|
|
5
|
-
egglog/builtins.py,sha256=cMmV809bBQuqAlm-95gwq5DR4a1IDKD5PWWyaWNQqYk,13008
|
|
6
|
-
egglog/config.py,sha256=mALVaxh7zmGrbuyzaVKVmYKcu1lF703QsKJw8AF7gSM,176
|
|
7
|
-
egglog/declarations.py,sha256=iehCpve1E9WUjy0vLVRjKHhG_SdvhSGxrNzRJMxVyZ0,38761
|
|
8
|
-
egglog/egraph.py,sha256=4vRpjOGanxOSFGuwD1xsuEB_psxqoTc8rfnnVPn3G9E,69476
|
|
9
|
-
egglog/examples/bool.py,sha256=eSTtYFMrE_jUZBSAgLz7TaFW65fwkPC5c9eB3winCNY,738
|
|
10
|
-
egglog/examples/eqsat_basic.py,sha256=HwrYFBCVEHQwjYdd03N1OmimMqqX9TQLAxBkaUKIVNQ,1045
|
|
11
|
-
egglog/examples/fib.py,sha256=Zx_UdS2pIVYOw6zbZRy5N2zPWCcakYEHhg7QGmx1oLU,523
|
|
12
|
-
egglog/examples/lambda_.py,sha256=4SuFYwwA5flB4JYdZT78evLEmOUj_rMYTV0k-duFxEM,8591
|
|
13
|
-
egglog/examples/matrix.py,sha256=1qeOoBbxbZsvSlTfP0tqkZpbH1kG8-wWr-1DzGaLm_Y,5143
|
|
14
|
-
egglog/examples/ndarrays.py,sha256=j59jCXh5Y_XRz6Q6d7ftcr1o7R7Nn8mmJtW_xB8o7T4,4290
|
|
15
|
-
egglog/examples/README.rst,sha256=QrbfmivODBvUvmY3-dHarcbC6bEvwoqAfTDhiI-aJxU,237
|
|
16
|
-
egglog/examples/resolution.py,sha256=7z5_6h-nnudeubUpHRl4cfgjEWVCFTYNsOiJTTDEPzM,2201
|
|
17
|
-
egglog/examples/schedule_demo.py,sha256=h9ukYbfH_crETE1-3yCllyOIbKRo6v-KwTYzQMytTag,650
|
|
18
|
-
egglog/examples/__init__.py,sha256=KuhaJFOyz_rpUvEqZubsgLnv6rhQNE_AVFXA6bUnpdY,34
|
|
19
|
-
egglog/exp/array_api.py,sha256=rxkvsv-CKJpbZb7Apw-HbtTAHegPjB_nGCrAZumYzeY,42290
|
|
20
|
-
egglog/exp/array_api_jit.py,sha256=HIZzd0G17u-u_F4vfRdhoYvRo-ETx5HFO3RBcOfLcco,1287
|
|
21
|
-
egglog/exp/array_api_numba.py,sha256=iVM8HaAZpN65gu1AuUu7n_OJU9fdCJF_qHpoaEtrO0s,2990
|
|
22
|
-
egglog/exp/array_api_program_gen.py,sha256=TcYBlr4LB7JR_kTG2rIV3lUsT_HJ9sWYp9E6FqeJzEw,19972
|
|
23
|
-
egglog/exp/program_gen.py,sha256=O8BmBQgdLa2CIorfEFOTsKyS1EGCRP_fjO0FXPjteqw,12255
|
|
24
|
-
egglog/exp/__init__.py,sha256=G9zeKUcPBgIhgUg1meC86OfZVFETYIugyHWseTcCe_0,52
|
|
25
|
-
egglog/graphviz_widget.py,sha256=YtI7LCFWHihDQ1qLvdj2SVYEcuZLSooFUYheunOTxdc,1339
|
|
26
|
-
egglog/ipython_magic.py,sha256=VA19xAb6Sz7-IxlJBbnZW_gVFDqaYNnvdMB9QitndjE,1254
|
|
27
|
-
egglog/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
-
egglog/runtime.py,sha256=PwaR99LE2-6AbEdiCFdNhix2APkwjkQkFfBqJ1g3klY,27486
|
|
29
|
-
egglog/type_constraint_solver.py,sha256=h-DAg9euwCMhHavW-Aey0kBOBj_C0pxp1huKgsjJ4Fg,5669
|
|
30
|
-
egglog/widget.css,sha256=WJS2M1wQdujhSTCakMa_ZXuoTPre1Uy1lPcvBE1LZQU,102
|
|
31
|
-
egglog/widget.js,sha256=UNOER3sYZ-bS7Qhw9S6qtpR81FuHa5DzXQaWWtQq334,2021
|
|
32
|
-
egglog/__init__.py,sha256=AGM-7H_Vx1Xb0Z-tc0C9Y8JbQxpa6hdYfhSU_dnT3Mw,244
|
|
33
|
-
egglog/bindings.cp310-win_amd64.pyd,sha256=NuOeudolAZy8RxrtWMIlOPQG1fEQE_mzAM9D6man3k0,5281280
|
|
34
|
-
egglog-6.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|