
Time bar (total: 3.9s)
| 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 14 to 10 computations (28.6% saved)
| 761.0ms | 6 093× | 1 | valid |
| 132.0ms | 2 163× | 0 | valid |
ival-sub: 245.0ms (37.8% of total)ival-add: 157.0ms (24.2% of total)ival-mult: 130.0ms (20.1% of total)adjust: 100.0ms (15.4% of total)exact: 7.0ms (1.1% of total)ival-true: 6.0ms (0.9% of total)ival-assert: 3.0ms (0.5% of total)| 2× | egg-herbie |
| 23 408× | accelerator-lowering-fma.f32 |
| 23 408× | accelerator-lowering-fma.f64 |
| 4 272× | +-lowering-+.f64 |
| 4 272× | +-lowering-+.f32 |
| 2 324× | distribute-lft-in |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 133 |
| 1 | 123 | 129 |
| 2 | 334 | 126 |
| 3 | 1142 | 126 |
| 4 | 3336 | 126 |
| 5 | 4421 | 126 |
| 6 | 5060 | 126 |
| 7 | 5644 | 126 |
| 8 | 5794 | 126 |
| 9 | 5800 | 126 |
| 10 | 5800 | 126 |
| 11 | 5808 | 126 |
| 12 | 5808 | 126 |
| 13 | 6174 | 126 |
| 0 | 8 | 13 |
| 1 | 21 | 13 |
| 2 | 64 | 1 |
| 3 | 227 | 1 |
| 4 | 537 | 1 |
| 5 | 1922 | 1 |
| 6 | 3449 | 1 |
| 7 | 4632 | 1 |
| 8 | 5213 | 1 |
| 9 | 5343 | 1 |
| 10 | 5375 | 1 |
| 11 | 5375 | 1 |
| 12 | 5643 | 1 |
| 13 | 5816 | 1 |
| 14 | 5892 | 1 |
| 15 | 5908 | 1 |
| 16 | 5908 | 1 |
| 17 | 5924 | 1 |
| 18 | 5924 | 1 |
| 19 | 6052 | 1 |
| 20 | 6821 | 1 |
| 0 | 8593 | 1 |
| 1× | iter limit |
| 1× | node limit |
| 1× | saturated |
| Inputs |
|---|
(- (+ (* x y) z) (+ 1 (+ (* x y) z))) |
| Outputs |
|---|
(- (+ (* x y) z) (+ 1 (+ (* x y) z))) |
#s(literal -1 binary64) |
| Inputs |
|---|
(- (fma x y z) (+ 1 (+ (* x y) z))) |
(- (fma (neg x) y z) (+ 1 (+ (* (neg x) y) z))) |
(- (fma x (neg y) z) (+ 1 (+ (* x (neg y)) z))) |
(- (fma x y (neg z)) (+ 1 (+ (* x y) (neg z)))) |
(neg (- (fma (neg x) y z) (+ 1 (+ (* (neg x) y) z)))) |
(neg (- (fma x (neg y) z) (+ 1 (+ (* x (neg y)) z)))) |
(neg (- (fma x y (neg z)) (+ 1 (+ (* x y) (neg z))))) |
(- (fma y x z) (+ 1 (+ (* y x) z))) |
(- (fma z y x) (+ 1 (+ (* z y) x))) |
(- (fma x z y) (+ 1 (+ (* x z) y))) |
| Outputs |
|---|
(- (fma x y z) (+ 1 (+ (* x y) z))) |
(+ (fma x y z) (- -1 (+ z (* x y)))) |
(- (fma (neg x) y z) (+ 1 (+ (* (neg x) y) z))) |
(+ (- (* x y) z) (+ (fma (neg x) y z) -1)) |
(- (fma x (neg y) z) (+ 1 (+ (* x (neg y)) z))) |
(+ (* x y) (+ (fma x (neg y) z) (- -1 z))) |
(- (fma x y (neg z)) (+ 1 (+ (* x y) (neg z)))) |
(+ (fma x y (neg z)) (+ z (- -1 (* x y)))) |
(neg (- (fma (neg x) y z) (+ 1 (+ (* (neg x) y) z)))) |
(+ (- z (* x y)) (- 1 (fma (neg x) y z))) |
(neg (- (fma x (neg y) z) (+ 1 (+ (* x (neg y)) z)))) |
(- (- z (+ (* x y) -1)) (fma x (neg y) z)) |
(neg (- (fma x y (neg z)) (+ 1 (+ (* x y) (neg z))))) |
(+ (- 1 z) (- (* x y) (fma x y (neg z)))) |
(- (fma y x z) (+ 1 (+ (* y x) z))) |
(+ (fma y x z) (- -1 (+ z (* x y)))) |
(- (fma z y x) (+ 1 (+ (* z y) x))) |
(+ (fma z y x) (- (- -1 x) (* y z))) |
(- (fma x z y) (+ 1 (+ (* x z) y))) |
(+ (fma x z y) (- (- -1 (* x z)) y)) |
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 181 | 6 | (-4.199325424466319e-77 1.9232236938336521e+87 -1.0958928492815178e-131) | 0 | - | (-.f64 (fma.f64 x y z) (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z))) |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 x y) z) |
| 0 | 0 | - | 0 | - | (fma.f64 x y z) |
| 0 | 0 | - | 0 | - | #s(literal 1 binary64) |
| 0 | 0 | - | 0 | - | (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z)) |
| 0 | 0 | - | 0 | - | z |
| 0 | 0 | - | 0 | - | (*.f64 x y) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
-.f64 | (-.f64 (fma.f64 x y z) (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z))) | cancellation | 165 | 4 |
-.f64 | (-.f64 (fma.f64 x y z) (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z))) | nan-rescue | 22 | 0 |
| ↳ | (fma.f64 x y z) | overflow | 22 | |
| ↳ | (+.f64 (*.f64 x y) z) | overflow | 22 | |
| ↳ | (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z)) | overflow | 22 | |
| ↳ | (*.f64 x y) | overflow | 22 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 181 | 0 |
| - | 6 | 69 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 181 | 0 | 0 |
| - | 6 | 4 | 65 |
| number | freq |
|---|---|
| 0 | 69 |
| 1 | 187 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 42.0ms | 372× | 1 | valid |
| 9.0ms | 140× | 0 | valid |
Compiled 104 to 38 computations (63.5% saved)
ival-add: 9.0ms (34.2% of total)ival-mult: 6.0ms (22.8% of total)ival-sub: 6.0ms (22.8% of total)adjust: 5.0ms (19% of total)exact: 1.0ms (3.8% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)Compiled 4 to 4 computations (0% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 100.0% | #s(literal -1 binary64) |
Compiled 4 to 4 computations (0% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1 | 1 |
| 0 | 1 | 1 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
-1 |
| Outputs |
|---|
-1 |
#s(literal -1 binary64) |
| 5.0ms | 256× | 0 | valid |
Compiled 3 to 6 computations (-100% saved)
ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
| Outputs |
|---|
| 1× | batch-egg-rewrite |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 1× | saturated |
| 1× | saturated |
| Inputs |
|---|
| Outputs |
|---|
Compiled 3 to 3 computations (0% saved)
1 alts after pruning (0 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 0 | 1 | 1 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | #s(literal -1 binary64) |
Compiled 20 to 14 computations (30% saved)
Total -44.0b remaining (-∞%)
Threshold costs -44b (-∞%)
| Inputs |
|---|
#s(literal -1 binary64) |
(-.f64 (fma.f64 x y z) (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z))) |
| Outputs |
|---|
#s(literal -1 binary64) |
4 calls:
| 1.0ms | y |
| 1.0ms | z |
| 1.0ms | x |
| 1.0ms | (-.f64 (fma.f64 x y z) (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 100.0% | 1 | x |
| 100.0% | 1 | y |
| 100.0% | 1 | z |
| 100.0% | 1 | (-.f64 (fma.f64 x y z) (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 x y) z))) |
Compiled 27 to 18 computations (33.3% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1 | 1 |
| 1× | saturated |
| Inputs |
|---|
#s(literal -1 binary64) |
| Outputs |
|---|
#s(literal -1 binary64) |
| 23 408× | accelerator-lowering-fma.f32 |
| 23 408× | accelerator-lowering-fma.f64 |
| 4 272× | +-lowering-+.f64 |
| 4 272× | +-lowering-+.f32 |
| 2 324× | distribute-lft-in |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 13 |
| 1 | 21 | 13 |
| 2 | 64 | 1 |
| 3 | 227 | 1 |
| 4 | 537 | 1 |
| 5 | 1922 | 1 |
| 6 | 3449 | 1 |
| 7 | 4632 | 1 |
| 8 | 5213 | 1 |
| 9 | 5343 | 1 |
| 10 | 5375 | 1 |
| 11 | 5375 | 1 |
| 12 | 5643 | 1 |
| 13 | 5816 | 1 |
| 14 | 5892 | 1 |
| 15 | 5908 | 1 |
| 16 | 5908 | 1 |
| 17 | 5924 | 1 |
| 18 | 5924 | 1 |
| 19 | 6052 | 1 |
| 20 | 6821 | 1 |
| 0 | 8593 | 1 |
| 1× | done |
| 1× | iter limit |
| 1× | node limit |
Compiled 8 to 8 computations (0% saved)
Compiled 46 to 34 computations (26.1% saved)
Loading profile data...