
Time bar (total: 8.3s)
| 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 34 to 22 computations (35.3% saved)
ival-sub, time spent: 0.0ms, 0.0% of total-timeconst, time spent: 0.0ms, 0.0% of total-timeival-add, time spent: 0.0ms, 0.0% of total-timeival-mult, time spent: 0.0ms, 0.0% of total-timeival-pow, time spent: 0.0ms, 0.0% of total-time| 1.3s | 5051× | 0 | infinite |
| 831.0ms | 3204× | 0 | valid |
| 0.0ms | 1× | 0 | infinite |
ival-add, time spent: 546.0ms, 37.0% of total-timeival-mult, time spent: 484.0ms, 33.0% of total-timeival-sub, time spent: 286.0ms, 19.0% of total-timeival-pow, time spent: 106.0ms, 7.0% of total-timeconst, time spent: 49.0ms, 3.0% of total-time| 1× | egg-herbie |
| 1222× | unsub-neg |
| 1084× | fma-def |
| 960× | fma-neg |
| 612× | distribute-lft-neg-out |
| 562× | distribute-lft-neg-in |
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 0 | 0 | - | 0 | - | (-.f64 1 (*.f64 3 a)) |
| 0 | 0 | - | 0 | - | b |
| 0 | 0 | - | 0 | - | (*.f64 3 a) |
| 0 | 0 | - | 0 | - | (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))) |
| 0 | 0 | - | 0 | - | (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) |
| 0 | 0 | - | 0 | - | (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))) |
| 0 | 0 | - | 0 | - | (+.f64 1 a) |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))) |
| 0 | 0 | - | 0 | - | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 a a) (*.f64 b b)) |
| 0 | 0 | - | 0 | - | (*.f64 b b) |
| 0 | 0 | - | 0 | - | 4 |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 a a) (+.f64 1 a)) |
| 0 | 0 | - | 0 | - | 3 |
| 0 | 0 | - | 0 | - | a |
| 0 | 0 | - | 0 | - | 2 |
| 0 | 0 | - | 0 | - | 1 |
| 0 | 0 | - | 0 | - | (*.f64 a a) |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 60 | 807 |
| 1 | 220 | 771 |
| 2 | 793 | 715 |
| 3 | 3659 | 715 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (+.f64 1 (neg.f64 a))) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 (neg.f64 a))))))) 1) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 1 (*.f64 3 a)))))) 1) |
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (+.f64 1 (neg.f64 a))) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 (neg.f64 a))))))) 1)) |
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 1 (*.f64 3 a)))))) 1)) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 1 b)) (*.f64 (*.f64 a a) (-.f64 1 (*.f64 3 b)))))) 1) |
| Outputs |
|---|
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3)))) -1)) |
(fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3)))) -1)) |
(fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (+.f64 1 (neg.f64 a))) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 (neg.f64 a))))))) 1) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 (neg.f64 a))))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(+.f64 (fma.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a 3)))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(+.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 (*.f64 b b) (fma.f64 a 3 1))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 1 (*.f64 3 a)))))) 1) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3)))) -1)) |
(fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 (neg.f64 a) (neg.f64 a)) (+.f64 1 (neg.f64 a))) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 (neg.f64 a))))))) 1)) |
(neg.f64 (+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 (neg.f64 a))))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1)) |
(+.f64 (neg.f64 (fma.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a 3)))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2))) 1) |
(-.f64 1 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 (*.f64 b b) (fma.f64 a 3 1))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2))) |
(neg.f64 (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 b))) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 (neg.f64 b) (neg.f64 b)) (-.f64 1 (*.f64 3 a)))))) 1)) |
(neg.f64 (+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1)) |
(+.f64 (neg.f64 (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3)))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2))) 1) |
(-.f64 1 (fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2))) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 1 b)) (*.f64 (*.f64 a a) (-.f64 1 (*.f64 3 b)))))) 1) |
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (-.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 b 1) (*.f64 a (*.f64 a (+.f64 1 (*.f64 -3 b)))))) 1)) |
(+.f64 (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 1 (*.f64 b -3))) (+.f64 (*.f64 b b) (pow.f64 b 3))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (fma.f64 b -3 1)) (fma.f64 b b (pow.f64 b 3))) -1)) |
(fma.f64 4 (fma.f64 a (*.f64 a (fma.f64 b -3 1)) (fma.f64 b b (pow.f64 b 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
(abs b)
Compiled 341 to 177 computations (48.1% saved)
ival-add, time spent: 720.0ms, 38.0% of total-timeival-mult, time spent: 650.0ms, 34.0% of total-timeival-sub, time spent: 360.0ms, 19.0% of total-timeival-pow, time spent: 119.0ms, 6.0% of total-timeconst, time spent: 67.0ms, 3.0% of total-timeCompiled 85 to 49 computations (42.4% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 72.2% | (fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
| ▶ | 70.2% | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| ▶ | 71.8% | (+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
Compiled 92 to 59 computations (35.9% saved)
Compiled 386 to 195 computations (49.5% saved)
ival-add, time spent: 1.0s, 39.0% of total-timeival-mult, time spent: 609.0ms, 23.0% of total-timeival-fma, time spent: 427.0ms, 16.0% of total-timeival-pow, time spent: 277.0ms, 11.0% of total-timeival-sub, time spent: 190.0ms, 7.0% of total-timeconst, time spent: 89.0ms, 3.0% of total-timeCompiled 2 to 2 computations (0% saved)
3 alts after pruning (0 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 72.2% | (fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
| ✓ | 70.2% | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| ✓ | 71.8% | (+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
Compiled 180 to 110 computations (38.9% saved)
| Inputs |
|---|
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
| Outputs |
|---|
(fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
5 calls:
| 5.0ms | a |
| 3.0ms | b |
| 3.0ms | (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) |
| 3.0ms | (*.f64 b b) |
| 3.0ms | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| Accuracy | Segments | Branch |
|---|---|---|
| 72.2% | 1 | a |
| 72.2% | 1 | b |
| 72.2% | 1 | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| 72.2% | 1 | (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) |
| 72.2% | 1 | (*.f64 b b) |
Compiled 75 to 47 computations (37.3% saved)
| Inputs |
|---|
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
5 calls:
| 5.0ms | a |
| 3.0ms | b |
| 3.0ms | (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) |
| 3.0ms | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| 2.0ms | (*.f64 b b) |
| Accuracy | Segments | Branch |
|---|---|---|
| 71.8% | 1 | a |
| 71.8% | 1 | b |
| 71.8% | 1 | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| 71.8% | 1 | (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) |
| 71.8% | 1 | (*.f64 b b) |
Compiled 75 to 47 computations (37.3% saved)
Total 0.0b remaining (0%)
Threshold costs 0b (0%)
| Inputs |
|---|
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| Outputs |
|---|
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
5 calls:
| 7.0ms | a |
| 3.0ms | (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) |
| 3.0ms | b |
| 2.0ms | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| 2.0ms | (*.f64 b b) |
| Accuracy | Segments | Branch |
|---|---|---|
| 70.2% | 1 | a |
| 70.2% | 1 | b |
| 70.2% | 1 | (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| 70.2% | 1 | (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) |
| 70.2% | 1 | (*.f64 b b) |
Compiled 75 to 47 computations (37.3% saved)
| 1× | egg-herbie |
| 28× | +-commutative |
| 24× | *-commutative |
| 12× | sub-neg |
| 8× | neg-mul-1 |
| 8× | neg-sub0 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 335 |
| 1 | 73 | 335 |
| 2 | 86 | 335 |
| 3 | 97 | 335 |
| 4 | 101 | 335 |
| 5 | 102 | 335 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
| Outputs |
|---|
(fma.f64 4 (fma.f64 (*.f64 b b) (fma.f64 a -3 1) (fma.f64 a a (pow.f64 a 3))) (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) -1)) |
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1) |
(+.f64 -1 (+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 a -3)))))))) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) |
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 a 3)))))) 1) |
(+.f64 -1 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 a 3))))))) |
Compiled 92 to 59 computations (35.9% saved)
| 1222× | unsub-neg |
| 1222× | unsub-neg |
| 1084× | fma-def |
| 1084× | fma-def |
| 960× | fma-neg |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 60 | 807 |
| 1 | 220 | 771 |
| 2 | 793 | 715 |
| 3 | 3659 | 715 |
| 0 | 60 | 807 |
| 1 | 220 | 771 |
| 2 | 793 | 715 |
| 3 | 3659 | 715 |
| 1× | node limit |
| 1× | node limit |
Compiled 318 to 175 computations (45% saved)
(abs b)
Compiled 466 to 280 computations (39.9% saved)
Loading profile data...