
Time bar (total: 6.7s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 0 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 1 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 2 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 3 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 4 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 5 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 6 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 7 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 8 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 9 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 10 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 11 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 12 |
Compiled 16 to 10 computations (37.5% saved)
ival-mult: 88.0ms (40% of total)ival-acos: 49.0ms (22.3% of total)ival-sub: 47.0ms (21.3% of total)ival-div: 30.0ms (13.6% of total)const: 5.0ms (2.3% of total)backward-pass: 2.0ms (0.9% of total)| 709.0ms | 8156× | 0 | invalid |
| 1.5s | 3576× | 3 | valid |
| 843.0ms | 2217× | 1 | valid |
| 774.0ms | 2109× | 2 | valid |
| 33.0ms | 354× | 0 | valid |
ival-acos: 636.0ms (25.1% of total)ival-mult: 571.0ms (22.6% of total)ival-sub: 459.0ms (18.1% of total)ival-div: 422.0ms (16.7% of total)backward-pass: 388.0ms (15.3% of total)const: 55.0ms (2.2% of total)| 2× | egg-herbie |
| 8668× | accelerator-lowering-fma.f32 |
| 8668× | accelerator-lowering-fma.f64 |
| 2288× | *-lowering-*.f32 |
| 2288× | *-lowering-*.f64 |
| 2162× | --lowering--.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 43 |
| 1 | 58 | 43 |
| 2 | 171 | 43 |
| 3 | 620 | 43 |
| 4 | 2458 | 43 |
| 5 | 4477 | 43 |
| 6 | 5330 | 43 |
| 7 | 6281 | 43 |
| 8 | 7284 | 43 |
| 9 | 7894 | 43 |
| 0 | 9 | 14 |
| 1 | 29 | 14 |
| 2 | 74 | 14 |
| 3 | 200 | 14 |
| 4 | 575 | 14 |
| 5 | 1232 | 14 |
| 6 | 2488 | 14 |
| 7 | 3858 | 14 |
| 8 | 5676 | 14 |
| 9 | 7330 | 14 |
| 10 | 7885 | 14 |
| 0 | 8099 | 12 |
| 1× | iter limit |
| 1× | node limit |
| 1× | node limit |
| Inputs |
|---|
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))) |
| Outputs |
|---|
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))) |
(acos.f64 (/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (*.f64 v v) #s(literal -5 binary64))) (+.f64 (*.f64 v v) #s(literal -1 binary64)))) |
| Inputs |
|---|
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))) |
(acos (/ (- 1 (* 5 (* (neg v) (neg v)))) (- (* (neg v) (neg v)) 1))) |
(neg (acos (/ (- 1 (* 5 (* (neg v) (neg v)))) (- (* (neg v) (neg v)) 1)))) |
| Outputs |
|---|
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))) |
(acos (/ (+ 1 (* v (* v -5))) (+ (* v v) -1))) |
(acos (/ (- 1 (* 5 (* (neg v) (neg v)))) (- (* (neg v) (neg v)) 1))) |
(acos (/ (+ 1 (* v (* v -5))) (+ (* v v) -1))) |
(neg (acos (/ (- 1 (* 5 (* (neg v) (neg v)))) (- (* (neg v) (neg v)) 1)))) |
(neg (acos (/ (+ 1 (* v (* v -5))) (+ (* v v) -1)))) |
(abs v)
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 14 | 241 | (1.1174602031076003e-199) | 0 | - | (acos.f64 (/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) (-.f64 (*.f64 v v) #s(literal 1 binary64)))) |
| 0 | 0 | - | 0 | - | (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) |
| 0 | 0 | - | 0 | - | (-.f64 (*.f64 v v) #s(literal 1 binary64)) |
| 0 | 0 | - | 0 | - | v |
| 0 | 0 | - | 0 | - | (/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) (-.f64 (*.f64 v v) #s(literal 1 binary64))) |
| 0 | 0 | - | 0 | - | (*.f64 v v) |
| 0 | 0 | - | 0 | - | #s(literal 5 binary64) |
| 0 | 0 | - | 0 | - | #s(literal 1 binary64) |
| 0 | 1 | (7.187202868780392e-163) | 0 | - | (*.f64 #s(literal 5 binary64) (*.f64 v v)) |
| 186.0ms | 228× | 3 | valid |
| 31.0ms | 142× | 1 | valid |
| 41.0ms | 122× | 2 | valid |
| 2.0ms | 20× | 0 | valid |
Compiled 119 to 29 computations (75.6% saved)
ival-mult: 86.0ms (47% of total)backward-pass: 30.0ms (16.4% of total)ival-acos: 29.0ms (15.8% of total)ival-sub: 18.0ms (9.8% of total)ival-div: 17.0ms (9.3% of total)const: 3.0ms (1.6% of total)Compiled 15 to 10 computations (33.3% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.8% | (acos.f64 (/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) (-.f64 (*.f64 v v) #s(literal 1 binary64)))) |
Compiled 15 to 9 computations (40% saved)
| 1× | egg-herbie |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| ✓ | cost-diff | 0 | #s(literal 1 binary64) |
| ✓ | cost-diff | 0 | (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) |
| ✓ | cost-diff | 0 | (/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) (-.f64 (*.f64 v v) #s(literal 1 binary64))) |
| ✓ | cost-diff | 0 | (acos.f64 (/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) (-.f64 (*.f64 v v) #s(literal 1 binary64)))) |
| ✓ | accuracy | 100.0% | (*.f64 v v) |
| ✓ | accuracy | 100.0% | (/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) (-.f64 (*.f64 v v) #s(literal 1 binary64))) |
| ✓ | accuracy | 99.7% | (*.f64 #s(literal 5 binary64) (*.f64 v v)) |
| ✓ | accuracy | 98.8% | (acos.f64 (/.f64 (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 5 binary64) (*.f64 v v))) (-.f64 (*.f64 v v) #s(literal 1 binary64)))) |
| 8668× | accelerator-lowering-fma.f32 |
| 8668× | accelerator-lowering-fma.f64 |
| 2288× | *-lowering-*.f32 |
| 2288× | *-lowering-*.f64 |
| 2162× | --lowering--.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 50 |
| 1 | 29 | 50 |
| 2 | 74 | 50 |
| 3 | 200 | 50 |
| 4 | 575 | 50 |
| 5 | 1232 | 50 |
| 6 | 2488 | 50 |
| 7 | 3858 | 50 |
| 8 | 5676 | 50 |
| 9 | 7330 | 50 |
| 10 | 7885 | 50 |
| 0 | 8099 | 44 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))) |
(/ (- 1 (* 5 (* v v))) (- (* v v) 1)) |
(- 1 (* 5 (* v v))) |
1 |
(* 5 (* v v)) |
5 |
(* v v) |
v |
(- (* v v) 1) |
| Outputs |
|---|
(acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1))) |
(acos.f64 (/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (*.f64 v v) #s(literal -5 binary64))) (+.f64 (*.f64 v v) #s(literal -1 binary64)))) |
(/ (- 1 (* 5 (* v v))) (- (* v v) 1)) |
(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (*.f64 v v) #s(literal -5 binary64))) (+.f64 (*.f64 v v) #s(literal -1 binary64))) |
(- 1 (* 5 (* v v))) |
(+.f64 #s(literal 1 binary64) (*.f64 (*.f64 v v) #s(literal -5 binary64))) |
1 |
#s(literal 1 binary64) |
(* 5 (* v v)) |
(*.f64 #s(literal 5 binary64) (*.f64 v v)) |
5 |
#s(literal 5 binary64) |
(* v v) |
(*.f64 v v) |
v |
(- (* v v) 1) |
(+.f64 (*.f64 v v) #s(literal -1 binary64)) |
| 70.0ms | 114× | 3 | valid |
| 15.0ms | 71× | 1 | valid |
| 23.0ms | 61× | 2 | valid |
| 1.0ms | 10× | 0 | valid |
Compiled 52 to 10 computations (80.8% saved)
backward-pass: 14.0ms (23.7% of total)ival-acos: 14.0ms (23.7% of total)ival-mult: 12.0ms (20.3% of total)ival-div: 10.0ms (16.9% of total)ival-sub: 9.0ms (15.2% of total)const: 1.0ms (1.7% of total)| Inputs |
|---|
#<alt (acos (/ (- 1 (* 5 (* v v))) (- (* v v) 1)))> |
#<alt (* 5 (* v v))> |
#<alt (/ (- 1 (* 5 (* v v))) (- (* v v) 1))> |
#<alt (* v v)> |
#<alt (- 1 (* 5 (* v v)))> |
#<alt 1> |
| Outputs |
|---|
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (acos (/ (- 1 (* 5 (pow v 2))) (- (pow v 2) 1)))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt (* 5 (pow v 2))> |
#<alt -1> |
#<alt (- (* 4 (pow v 2)) 1)> |
#<alt (- (* (pow v 2) (+ 4 (* 4 (pow v 2)))) 1)> |
#<alt (- (* (pow v 2) (+ 4 (* (pow v 2) (+ 4 (* 4 (pow v 2)))))) 1)> |
#<alt -5> |
#<alt (* -1 (+ 5 (* 4 (/ 1 (pow v 2)))))> |
#<alt (- (* -1 (/ (+ 4 (* 4 (/ 1 (pow v 2)))) (pow v 2))) 5)> |
#<alt (- (* -1 (/ (+ 4 (* 4 (/ 1 (pow v 2)))) (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2)))))> |
#<alt -5> |
#<alt (* -1 (+ 5 (* 4 (/ 1 (pow v 2)))))> |
#<alt (- (* -1 (/ (+ 4 (* 4 (/ 1 (pow v 2)))) (pow v 2))) 5)> |
#<alt (- (* -1 (/ (+ 4 (* 4 (/ 1 (pow v 2)))) (pow v 4))) (+ 5 (* 4 (/ 1 (pow v 2)))))> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt (pow v 2)> |
#<alt 1> |
#<alt (+ 1 (* -5 (pow v 2)))> |
#<alt (+ 1 (* -5 (pow v 2)))> |
#<alt (+ 1 (* -5 (pow v 2)))> |
#<alt (* -5 (pow v 2))> |
#<alt (* (pow v 2) (- (/ 1 (pow v 2)) 5))> |
#<alt (* (pow v 2) (- (/ 1 (pow v 2)) 5))> |
#<alt (* (pow v 2) (- (/ 1 (pow v 2)) 5))> |
#<alt (* -5 (pow v 2))> |
#<alt (* (pow v 2) (- (/ 1 (pow v 2)) 5))> |
#<alt (* (pow v 2) (- (/ 1 (pow v 2)) 5))> |
#<alt (* (pow v 2) (- (/ 1 (pow v 2)) 5))> |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | v | @ | 0 | (* 5 (* v v)) |
| 0.0ms | v | @ | inf | (* 5 (* v v)) |
| 0.0ms | v | @ | inf | (/ (- 1 (* 5 (* v v))) (- (* v v) 1)) |
| 0.0ms | v | @ | -inf | (/ (- 1 (* 5 (* v v))) (- (* v v) 1)) |
| 0.0ms | v | @ | inf | (* v v) |
| 1× | batch-egg-rewrite |
| 4946× | accelerator-lowering-fma.f32 |
| 4946× | accelerator-lowering-fma.f64 |
| 4582× | *-lowering-*.f32 |
| 4582× | *-lowering-*.f64 |
| 3506× | /-lowering-/.f32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 43 |
| 1 | 64 | 43 |
| 2 | 524 | 43 |
| 3 | 6816 | 43 |
| 0 | 8164 | 38 |
| 1× | iter limit |
| 1× | node limit |
Loading profile data...