
Time bar (total: 872.0ms)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 1 |
Compiled 9 to 6 computations (33.3% saved)
ival-exp: 0.0ms (0% of total)ival-mult: 0.0ms (0% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| 446.0ms | 8256× | 0 | valid |
ival-mult: 151.0ms (68.4% of total)ival-exp: 60.0ms (27.2% of total)const: 7.0ms (3.2% of total)backward-pass: 3.0ms (1.4% of total)| 2× | egg-herbie |
| 260× | exp-prod |
| 108× | associate-*r* |
| 104× | exp-sum |
| 64× | unsub-neg |
| 56× | distribute-lft-neg-in |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 42 |
| 1 | 57 | 40 |
| 2 | 127 | 40 |
| 3 | 293 | 40 |
| 4 | 495 | 40 |
| 5 | 645 | 40 |
| 6 | 715 | 40 |
| 7 | 724 | 40 |
| 0 | 5 | 6 |
| 1 | 11 | 6 |
| 2 | 18 | 6 |
| 3 | 20 | 6 |
| 4 | 21 | 6 |
| 0 | 21 | 6 |
| 1× | iter limit |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
(exp (* (* x y) y)) |
| Outputs |
|---|
(exp (* (* x y) y)) |
(exp.f64 (*.f64 y (*.f64 x y))) |
| Inputs |
|---|
(exp (* (* x y) y)) |
(exp (* (* (neg x) y) y)) |
(exp (* (* x (neg y)) (neg y))) |
(neg (exp (* (* (neg x) y) y))) |
(neg (exp (* (* x (neg y)) (neg y)))) |
(exp (* (* y x) x)) |
| Outputs |
|---|
(exp (* (* x y) y)) |
(pow (exp x) (* y y)) |
(exp (* (* (neg x) y) y)) |
(pow (exp (neg x)) (* y y)) |
(exp (* (* x (neg y)) (neg y))) |
(pow (exp x) (* y y)) |
(neg (exp (* (* (neg x) y) y))) |
(/ -1 (pow (exp x) (* y y))) |
(neg (exp (* (* x (neg y)) (neg y)))) |
(neg (pow (exp x) (* y y))) |
(exp (* (* y x) x)) |
(pow (pow (exp x) y) x) |
(abs y)
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 1 | 0 | - | 0 | - | (exp.f64 (*.f64 (*.f64 x y) y)) |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 x y) y) |
| 0 | 0 | - | 0 | - | (*.f64 x y) |
| 0 | 0 | - | 0 | - | x |
| 0 | 0 | - | 0 | - | y |
| 31.0ms | 512× | 0 | valid |
Compiled 46 to 17 computations (63% saved)
ival-mult: 8.0ms (69.4% of total)ival-exp: 3.0ms (26% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)Compiled 8 to 5 computations (37.5% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | (exp.f64 (*.f64 (*.f64 x y) y)) |
Compiled 8 to 5 computations (37.5% saved)
| 1× | egg-herbie |
Found 6 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | cost-diff | 0 | (*.f64 x y) |
| ✓ | cost-diff | 0 | (*.f64 (*.f64 x y) y) |
| ✓ | cost-diff | 0 | (exp.f64 (*.f64 (*.f64 x y) y)) |
| ✓ | accuracy | 100.0% | (*.f64 x y) |
| ✓ | accuracy | 100.0% | (exp.f64 (*.f64 (*.f64 x y) y)) |
| ✓ | accuracy | 99.8% | (*.f64 (*.f64 x y) y) |
| 14× | pow-lowering-pow.f64 |
| 14× | pow-lowering-pow.f32 |
| 14× | exp-prod |
| 14× | *-lowering-*.f32 |
| 14× | *-lowering-*.f64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 16 |
| 1 | 11 | 16 |
| 2 | 18 | 16 |
| 3 | 20 | 16 |
| 4 | 21 | 16 |
| 0 | 21 | 16 |
| 1× | iter limit |
| 1× | saturated |
| Inputs |
|---|
(exp (* (* x y) y)) |
(* (* x y) y) |
(* x y) |
x |
y |
| Outputs |
|---|
(exp (* (* x y) y)) |
(exp.f64 (*.f64 y (*.f64 x y))) |
(* (* x y) y) |
(*.f64 y (*.f64 x y)) |
(* x y) |
(*.f64 x y) |
x |
y |
| 20.0ms | 256× | 0 | valid |
Compiled 19 to 6 computations (68.4% saved)
ival-mult: 5.0ms (61.9% of total)ival-exp: 2.0ms (24.8% of total)const: 0.0ms (0% of total)backward-pass: 0.0ms (0% of total)| Inputs |
|---|
#<alt (* (* x y) y)> |
#<alt (exp (* (* x y) y))> |
#<alt (* x y)> |
| Outputs |
|---|
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt (* x (pow y 2))> |
#<alt 1> |
#<alt (+ 1 (* x (pow y 2)))> |
#<alt (+ 1 (* x (+ (* 1/2 (* x (pow y 4))) (pow y 2))))> |
#<alt (+ 1 (* x (+ (* x (+ (* 1/6 (* x (pow y 6))) (* 1/2 (pow y 4)))) (pow y 2))))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt 1> |
#<alt (+ 1 (* x (pow y 2)))> |
#<alt (+ 1 (* (pow y 2) (+ x (* 1/2 (* (pow x 2) (pow y 2))))))> |
#<alt (+ 1 (* (pow y 2) (+ x (* (pow y 2) (+ (* 1/6 (* (pow x 3) (pow y 2))) (* 1/2 (pow x 2)))))))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (exp (* x (pow y 2)))> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
#<alt (* x y)> |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | (* (* x y) y) |
| 1.0ms | y | @ | 0 | (* x y) |
| 1.0ms | y | @ | inf | (* (* x y) y) |
| 0.0ms | x | @ | inf | (* (* x y) y) |
| 0.0ms | y | @ | 0 | (* (* x y) y) |
| 1× | batch-egg-rewrite |
| 1196× | frac-add |
| 738× | frac-times |
| 536× | frac-sub |
| 408× | associate-*r/ |
| 268× | pow-pow |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 16 |
| 1 | 11 | 16 |
| 2 | 26 | 16 |
| 3 | 89 | 16 |
| 4 | 479 | 3 |
| 5 | 3871 | 3 |
| 0 | 9032 | 3 |
| 1× | iter limit |
| 1× | node limit |
Loading profile data...