Skip to content

Commit 1bedabf

Browse files
pre-changes
1 parent 3b0ef4f commit 1bedabf

15 files changed

Lines changed: 2239 additions & 1513 deletions

python/egglog/builtins.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@
9898
"py_eval_fn",
9999
"py_exec",
100100
"set_union_values",
101+
"vec_foldl",
102+
"vec_foldr",
101103
]
102104

103105

@@ -1326,6 +1328,14 @@ def map(self, fn: Callable[[T], V]) -> Vec[V]: ...
13261328
VecLike: TypeAlias = Vec[T] | tuple[TO, ...] | list[TO]
13271329

13281330

1331+
@function(egg_fn="vec-foldl", builtin=True)
1332+
def vec_foldl(f: Callable[[A, T], A], initial: A, xs: Vec[T]) -> A: ...
1333+
1334+
1335+
@function(egg_fn="vec-foldr", builtin=True)
1336+
def vec_foldr(f: Callable[[T, A], A], initial: A, xs: Vec[T]) -> A: ...
1337+
1338+
13291339
TS = TypeVarTuple("TS")
13301340

13311341
T1 = TypeVar("T1")

python/egglog/exp/param_eq/__snapshots__/test_domain/test_parsing.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@
8888
* (Num(1.2522488356336676) - exp(Num.var("x0") * exp(exp(Num(-1.0) + Num.var("x0"))) ** Num(-1.0)))
8989
)
9090
# n_params=4
91-
_expr_1 = exp(exp(polynomial({{Num.var("x0"): 1}: 1.0, {Num(-1.0): 1}: 1.0})))
91+
_expr_1 = exp(exp(polynomial({{Num(-1.0): 1}: 1.0, {Num.var("x0"): 1}: 1.0})))
9292
polynomial(
9393
{
9494
{Num(0.2306440753250631): 1}: 1.0,
9595
{Num(0.03139967317000205): 1, Num.var("x1"): 1}: 1.0,
9696
{
97-
polynomial({{_expr_1: -1}: 1.0, {Num(-1.1634241022901022): 1}: 1.0}): 1,
97+
polynomial({{Num(-1.1634241022901022): 1}: 1.0, {_expr_1: -1}: 1.0}): 1,
9898
polynomial({{Num(1.2522488356336676): 1}: 1.0, {exp(polynomial({{Num.var("x0"): 1, _expr_1: -1}: 1.0})): 1}: -1.0}): 1,
9999
}: 1.0,
100100
}
@@ -124,7 +124,7 @@
124124
polynomial(
125125
{
126126
{Num.var("x0"): 1, Num(0.04106910574307527): 1}: 1.0,
127-
{Num.var("x1"): 1, Num(0.04358235597907372): 1, polynomial({{Num.var("x1"): 1}: 1.0, {Num(4.735723943783631): 1}: -1.0}): 1}: 1.0,
127+
{Num(0.04358235597907372): 1, Num.var("x1"): 1, polynomial({{Num.var("x1"): 1}: 1.0, {Num(4.735723943783631): 1}: -1.0}): 1}: 1.0,
128128
{Num(0.01496006509706177): 1}: 1.0,
129129
{Num.var("I"): 1, Num.var("pi"): 1}: 1.0,
130130
}
@@ -179,7 +179,7 @@
179179
{polynomial({{Num(-0.289): 1, Num(-0.327): -1}: 1.0}): 3}: -1.0,
180180
{
181181
Num.var("x1"): 1,
182-
polynomial({{Num(-0.045): 1}: 1.0, {polynomial({{Num.var("x0"): -2, Num(-0.464): 1}: 1.0}): 2}: -1.0}): -1,
182+
polynomial({{Num(-0.045): 1}: 1.0, {polynomial({{Num(-0.464): 1, Num.var("x0"): -2}: 1.0}): 2}: -1.0}): -1,
183183
}: -1.0,
184184
}
185185
)
@@ -231,7 +231,7 @@
231231
{
232232
{Num.var("x0"): 1}: 1.0,
233233
{Num.var("x1"): 1, Num(1.096491354684671): 1}: -1.0,
234-
{exp(Num.var("x1")): 1, Num(0.09649135468467125): 1}: 1.0,
234+
{Num(0.09649135468467125): 1, exp(Num.var("x1")): 1}: 1.0,
235235
{Num(0.065716650770683): 1}: 1.0,
236236
}
237237
): 1,

python/egglog/exp/param_eq/artifacts/egglog_results_binary.csv

Lines changed: 714 additions & 714 deletions
Large diffs are not rendered by default.
Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
dataset,raw_index,algorithm_raw,algo_row,input_kind,variant,status,runtime_ms,before_nodes,before_params,after_nodes,after_params,egraph_total_size,passes,extracted_cost,peak_rss_mb,rendered
2-
kotanchek,0,Bingo,1,original,baseline,saturated,2688.228583021555,38.0,4.0,32.0,5.0,123.0,2.0,32.0,133.21875,-0.020073090501122322 * (x0 + x1 + -5.5120891698213805) + 0.713072197849276 * ((0.022522799045566234 + x0 * x0) * (x0 * x0 + 0.5 * (x1 ** (-1.0) * exp(x0 * x0))) ** (-1.0))
3-
kotanchek,0,Bingo,1,sympy,baseline,saturated,7448.861584009137,45.0,5.0,43.0,4.0,63.0,2.0,43.0,143.875,((2.0 * x0 ** 2.0 * x1 + exp(x0 ** 2.0)) * (x0 + x1 + -5.5120891698213805) + -71.04757464321759 * ((x0 ** 2.0 + 0.022522799045566234) * x1)) * (-0.020073090501122322 / (2.0 * x0 ** 2.0 * x1 + exp(x0 ** 2.0)))
4-
kotanchek,2,Bingo,2,original,baseline,saturated,333.27366603771225,53.0,11.0,25.0,5.0,54.0,2.0,25.0,114.328125,0.12833632981483378 * ((x0 + 0.5717467226489543 * log(abs(-14.792753236262874 * (x1 + 0.09949919221042855) + exp(x1)))) * (exp(x0) + -2.0678277294438554 * x0) ** (-1.0))
5-
kotanchek,2,Bingo,2,sympy,baseline,saturated,178.97145898314193,22.0,5.0,22.0,5.0,84.0,1.0,22.0,114.375,(-0.12833632981483378 * x0 - 0.0733758759684265 * log(-14.792753236262874 * x1 + exp(x1) - 1.4718669975763585)) / (2.0678277294438554 * x0 - exp(x0))
6-
kotanchek,3,Bingo,3,original,baseline,saturated,482.59933304507285,24.0,5.0,22.0,4.0,142.0,2.0,22.0,116.109375,-0.01768299095097286 + -0.799049025992938 * (x0 * x0) * (x1 * (-4.734655034994491 + x1) + -0.3212108877413568) * exp(2.0 * x0) ** (-1.0)
7-
kotanchek,3,Bingo,3,sympy,baseline,saturated,238.1826660130173,25.0,4.0,25.0,4.0,109.0,1.0,25.0,115.34375,(x0 ** 2.0 * (-0.7990490259929379 * x1 * (x1 - 4.734655034994491) + 0.2566632469880581) - 0.01768299095097286 * exp(2.0 * x0)) * exp(-2.0 * x0)
8-
kotanchek,4,Bingo,4,original,baseline,saturated,267.3753750277683,22.0,4.0,20.0,4.0,38.0,2.0,20.0,117.953125,-0.03144312866911644 * (-3.0969157782045578 + -31.196859437348742 * (x0 * (-0.044758903858526766 + exp(x0 * x0) ** (-1.0) * x0)) - x1)
9-
kotanchek,4,Bingo,4,sympy,baseline,saturated,1873.261792003177,22.0,4.0,22.0,4.0,587.0,2.0,22.0,121.0,0.09737672129150278 + (0.980926865360896 * x0 ** 2.0 * exp(-1.0 * x0 ** 2.0) + -0.043905211258934373 * x0) + 0.03144312866911644 * x1
10-
kotanchek,5,Bingo,5,original,baseline,saturated,397.4502919591032,28.0,7.0,24.0,5.0,43.0,2.0,24.0,118.453125,-0.00021014784984354508 + 0.04236745974303985 * (exp(2.0 * x0 - x0 * x0) + 0.00030107193532269384 * x0) * (0.0929803245489893 + x1 * (4.739077949578231 - x1))
11-
kotanchek,5,Bingo,5,sympy,baseline,saturated,4584.899625042453,40.0,6.0,36.0,5.0,110.0,2.0,36.0,138.0,(-1.275565309954333e-05 * ((x1 - 4.739077949578231) * x1 - 0.092980324549141) * (exp(x0 * (x0 - 2.0)) * x0 - -3321.465346573016) - 0.00021014784984354508 * exp(x0 * (x0 - 2.0))) * exp(x0 * (2.0 - x0))
12-
pagie,0,Bingo,1,original,baseline,saturated,354.5837499550544,43.0,6.0,39.0,6.0,86.0,2.0,39.0,118.671875,0.5240322255066139 + -0.45351118068033663 * log(abs(-54.93119319072758 + 755.3723998652232 * log(abs(x0 * (-2.0 * x1 ** (-1.0) + -66438756992.645454 * x1))) ** (-1.0) + log(abs(x0 * (-2.0 * x1 ** (-1.0) + -66438756992.645454 * x1)))))
13-
pagie,0,Bingo,1,sympy,baseline,saturated,1127.332792035304,34.0,6.0,28.0,6.0,62.0,2.0,28.0,123.53125,0.5240322255066139 + -0.45351118068033663 * log(-30.011646777931055 + log((-3.010291117007793e-11 / x1 - x1) * x0) + 755.3723998652232 / log((-2.0 / x1 + -66438756992.645454 * x1) * x0))
14-
pagie,1,Bingo,2,original,baseline,saturated,361.0917079495266,23.0,4.0,19.0,4.0,65.0,2.0,19.0,118.65625,0.04547093390683249 + 0.17516554602688977 * log(abs(x0 * x0 * (-428.9738000218307 * (x1 * x1) + 34.093055726490284) + x1))
15-
pagie,1,Bingo,2,sympy,baseline,saturated,289.4518750254065,22.0,4.0,18.0,4.0,43.0,2.0,18.0,120.1875,0.17516554602688977 * log(x0 ** 2.0 * (x1 ** 2.0 * -428.9738000218307 + 34.093055726490284) + x1) + 0.04547093390683249
16-
pagie,2,Bingo,3,original,baseline,saturated,216.39095799764618,37.0,7.0,23.0,4.0,51.0,2.0,23.0,117.921875,0.331885850726245 * log(abs(1.0 + -1.4192603808235096 * (x1 * (x0 + 22.05465845949665 * x0 + log(abs(-0.5941007048060543 + x0)))) - x0))
17-
pagie,2,Bingo,3,sympy,baseline,saturated,3505.4724999936298,25.0,4.0,23.0,4.0,38.0,2.0,23.0,137.3125,log(1.0 - x0 + -1.419260380823509 * ((23.05465845949665 * x0 + log(x0 + -0.5941007048060543)) * x1)) / (3.013084160749133 + I * pi)
18-
pagie,3,Bingo,4,original,baseline,saturated,266.5417499956675,55.0,10.0,45.0,8.0,120.0,2.0,45.0,118.40625,321.50462762611204 * ((-0.00038635675709715734 * (x0 * x1) + log(abs(3323.2144588507704 * (x0 * x1))) + -3.834139037636267) * ((-0.00038635675709715734 * (x0 * x1) + log(abs(3323.2144588507704 * (x0 * x1))) + 2576.588490470697) ** (-1.0) * log(abs(log(abs(3323.2144588507704 * (x0 * x1)))))))
19-
pagie,3,Bingo,4,sympy,baseline,saturated,182.53220804035664,39.0,6.0,39.0,6.0,93.0,1.0,39.0,117.5625,321.50462762611204 * (0.0003863567570971573 * x0 * x1 - log(x0 * x1) - 4.274548766358028) * log(log(x0 * x1) + 8.108687803994295) / (0.0003863567570971573 * x0 * x1 - log(x0 * x1) - 2584.697178274691 + I * pi)
20-
pagie,4,Bingo,5,original,baseline,saturated,130.8417500113137,23.0,3.0,23.0,3.0,37.0,1.0,23.0,117.375,-0.7617093798419142 + 0.3424256684358176 * log(abs(x1 * (249.92555522398015 * x0 + x1 ** (-2.0) * log(abs(x0)) - (x0 + x1))))
21-
pagie,4,Bingo,5,sympy,baseline,saturated,80.76579100452363,19.0,3.0,19.0,3.0,36.0,1.0,19.0,114.296875,0.3424256684358176 * log((x1 ** 2.0 * (248.92555522398015 * x0 - x1) + log(x0)) / x1) - 0.7617093798419142
2+
kotanchek,0,Bingo,1,original,baseline,saturated,684.9485000129789,38.0,4.0,32.0,5.0,123.0,2.0,32.0,118.078125,-0.020073090501122322 * (x0 + x1 + -5.5120891698213805) + 0.713072197849276 * ((0.022522799045566234 + x0 * x0) * (x0 * x0 + 0.5 * (x1 ** (-1.0) * exp(x0 * x0))) ** (-1.0))
3+
kotanchek,0,Bingo,1,sympy,baseline,saturated,1454.0939169819467,45.0,5.0,43.0,4.0,63.0,2.0,43.0,128.9375,((2.0 * x0 ** 2.0 * x1 + exp(x0 ** 2.0)) * (x0 + x1 + -5.5120891698213805) + -71.04757464321759 * x1 * (x0 ** 2.0 + 0.022522799045566234)) * (-0.020073090501122322 / (2.0 * x0 ** 2.0 * x1 + exp(x0 ** 2.0)))
4+
kotanchek,2,Bingo,2,original,baseline,saturated,159.80025002500042,53.0,11.0,25.0,5.0,54.0,2.0,25.0,107.0625,0.12833632981483378 * ((x0 + 0.5717467226489543 * log(abs(-14.792753236262874 * (x1 + 0.09949919221042855) + exp(x1)))) * (exp(x0) + -2.0678277294438554 * x0) ** (-1.0))
5+
kotanchek,2,Bingo,2,sympy,baseline,saturated,100.37537501193583,22.0,5.0,22.0,5.0,84.0,1.0,22.0,106.140625,(-0.12833632981483378 * x0 - 0.0733758759684265 * log(-14.792753236262874 * x1 + exp(x1) - 1.4718669975763585)) / (2.0678277294438554 * x0 - exp(x0))
6+
kotanchek,3,Bingo,3,original,baseline,saturated,222.5242920103483,24.0,5.0,22.0,4.0,142.0,2.0,22.0,107.421875,-0.01768299095097286 + -0.799049025992938 * (x1 * (-4.734655034994491 + x1) + -0.3212108877413568) * exp(2.0 * x0) ** (-1.0) * (x0 * x0)
7+
kotanchek,3,Bingo,3,sympy,baseline,saturated,117.11916601052508,25.0,4.0,25.0,4.0,109.0,1.0,25.0,106.765625,(x0 ** 2.0 * (-0.7990490259929379 * x1 * (x1 - 4.734655034994491) + 0.2566632469880581) - 0.01768299095097286 * exp(2.0 * x0)) * exp(-2.0 * x0)
8+
kotanchek,4,Bingo,4,original,baseline,saturated,186.44287501228973,22.0,4.0,20.0,4.0,38.0,2.0,20.0,109.171875,-0.03144312866911644 * (-3.0969157782045578 + -31.196859437348742 * (x0 * (-0.044758903858526766 + exp(x0 * x0) ** (-1.0) * x0)) - x1)
9+
kotanchek,4,Bingo,4,sympy,baseline,saturated,360.3090000106022,22.0,4.0,22.0,4.0,587.0,2.0,22.0,111.125,0.09737672129150278 + (0.980926865360896 * x0 ** 2.0 * exp(-1.0 * x0 ** 2.0) + -0.043905211258934373 * x0) + 0.03144312866911644 * x1
10+
kotanchek,5,Bingo,5,original,baseline,saturated,166.52704199077561,28.0,7.0,24.0,5.0,43.0,2.0,24.0,110.1875,-0.00021014784984354508 + 0.04236745974303985 * (exp(2.0 * x0 - x0 * x0) + 0.00030107193532269384 * x0) * (0.0929803245489893 + x1 * (4.739077949578231 - x1))
11+
kotanchek,5,Bingo,5,sympy,baseline,saturated,1137.652125034947,40.0,6.0,36.0,5.0,110.0,2.0,36.0,121.828125,(-1.275565309954333e-05 * ((x1 - 4.739077949578231) * x1 - 0.092980324549141) * (exp(x0 * (x0 - 2.0)) * x0 - -3321.465346573016) - 0.00021014784984354508 * exp(x0 * (x0 - 2.0))) * exp(x0 * (2.0 - x0))
12+
pagie,0,Bingo,1,original,baseline,saturated,193.5660419985652,43.0,6.0,39.0,6.0,62.0,2.0,39.0,109.671875,0.5240322255066139 + -0.45351118068033663 * log(abs(-54.93119319072758 + 755.3723998652232 * log(abs(-2.0 * (x0 * (x1 ** (-1.0) + 33219378496.322727 * x1)))) ** (-1.0) + log(abs(-2.0 * (x0 * (x1 ** (-1.0) + 33219378496.322727 * x1))))))
13+
pagie,0,Bingo,1,sympy,baseline,saturated,321.97895797435194,34.0,6.0,28.0,6.0,69.0,2.0,28.0,113.6875,0.5240322255066139 - 0.45351118068033663 * log(-30.011646777931055 + log((-3.010291117007793e-11 / x1 - x1) * x0) + 755.3723998652232 / log((-66438756992.645454 * x1 - 2.0 / x1) * x0))
14+
pagie,1,Bingo,2,original,baseline,saturated,173.94624999724329,23.0,4.0,19.0,4.0,65.0,2.0,19.0,109.765625,0.04547093390683249 + 0.17516554602688977 * log(abs(x0 * x0 * (34.093055726490284 + -428.9738000218307 * (x1 * x1)) + x1))
15+
pagie,1,Bingo,2,sympy,baseline,saturated,128.78683401504532,22.0,4.0,18.0,4.0,43.0,2.0,18.0,111.484375,0.17516554602688977 * log(x0 ** 2.0 * (x1 ** 2.0 * -428.9738000218307 + 34.093055726490284) + x1) + 0.04547093390683249
16+
pagie,2,Bingo,3,original,baseline,saturated,154.92000000085682,37.0,7.0,23.0,4.0,51.0,2.0,23.0,109.609375,0.331885850726245 * log(abs(1.0 + -1.4192603808235096 * (x1 * (x0 + 22.05465845949665 * x0 + log(abs(-0.5941007048060543 + x0)))) - x0))
17+
pagie,2,Bingo,3,sympy,baseline,saturated,1032.08758297842,25.0,4.0,23.0,4.0,38.0,2.0,23.0,123.4375,log(1.0 - x0 + -1.419260380823509 * ((23.05465845949665 * x0 + log(x0 + -0.5941007048060543)) * x1)) / (3.013084160749133 + I * pi)
18+
pagie,3,Bingo,4,original,baseline,saturated,148.55433302000165,55.0,10.0,45.0,8.0,120.0,2.0,45.0,109.28125,321.50462762611204 * ((-0.00038635675709715734 * (x0 * x1) + log(abs(3323.2144588507704 * (x0 * x1))) + -3.834139037636267) * ((-0.00038635675709715734 * (x0 * x1) + log(abs(3323.2144588507704 * (x0 * x1))) + 2576.588490470697) ** (-1.0) * log(abs(log(abs(3323.2144588507704 * (x0 * x1)))))))
19+
pagie,3,Bingo,4,sympy,baseline,saturated,100.91095900861546,39.0,6.0,39.0,6.0,93.0,1.0,39.0,108.8125,321.50462762611204 * (0.0003863567570971573 * x0 * x1 - log(x0 * x1) - 4.274548766358028) * log(log(x0 * x1) + 8.108687803994295) / (0.0003863567570971573 * x0 * x1 - log(x0 * x1) - 2584.697178274691 + I * pi)
20+
pagie,4,Bingo,5,original,baseline,saturated,108.29129198100418,23.0,3.0,23.0,3.0,37.0,1.0,23.0,108.9375,-0.7617093798419142 + 0.3424256684358176 * log(abs(x1 * (249.92555522398015 * x0 + x1 ** (-2.0) * log(abs(x0)) - (x0 + x1))))
21+
pagie,4,Bingo,5,sympy,baseline,saturated,56.653750012628734,19.0,3.0,19.0,3.0,36.0,1.0,19.0,109.0,0.3424256684358176 * log((x1 ** 2.0 * (248.92555522398015 * x0 - x1) + log(x0)) / x1) - 0.7617093798419142

0 commit comments

Comments
 (0)