egglog 6.0.0__cp312-none-win_amd64.whl → 6.1.0__cp312-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.

@@ -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 = (array_api_schedule + array_api_numba_ruleset * 10000).saturate()
13
- # For these rules, we not only wanna rewrite, we also want to delete the original expression,
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 * 10000 + program_gen_ruleset * 10000
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
@@ -2,6 +2,7 @@
2
2
  """
3
3
  Builds up imperative string expressions from a functional expression.
4
4
  """
5
+
5
6
  from __future__ import annotations
6
7
 
7
8
  from typing import Union
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 in {"__origin__"}:
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
 
@@ -1,4 +1,5 @@
1
1
  """Provides a class for solving type constraints."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from collections import defaultdict
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: egglog
3
- Version: 6.0.0
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
- Provides-Extra: docs
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=5VSD4WjrAS64a1-QM6eGcLa48TnO082fkviTtVvn8m4,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.cp312-win_amd64.pyd,sha256=4-hWysy9fh269xQIjndC9TfSvsLjwxM-mfDhTEo-M5Y,5011456
34
+ egglog-6.1.0.dist-info/RECORD,,
@@ -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=5VSD4WjrAS64a1-QM6eGcLa48TnO082fkviTtVvn8m4,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.cp312-win_amd64.pyd,sha256=zGcRXNKnPIMHENh-nsTHGUdudVbW8H0cUqztCqeY0Dg,5281792
34
- egglog-6.0.0.dist-info/RECORD,,
File without changes