
Time bar (total: 3.3s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 6 |
| 18.8% | 18.7% | 81.1% | 0.2% | 0% | 0% | 0% | 7 |
| 18.8% | 18.7% | 81.1% | 0.2% | 0% | 0% | 0% | 8 |
| 18.8% | 18.7% | 81.1% | 0.2% | 0% | 0% | 0% | 9 |
| 34.4% | 34.3% | 65.5% | 0.2% | 0% | 0% | 0% | 10 |
| 54.7% | 54.6% | 45.2% | 0.2% | 0% | 0% | 0% | 11 |
| 54.7% | 54.6% | 45.2% | 0.2% | 0% | 0% | 0% | 12 |
Compiled 39 to 18 computations (53.8% saved)
| 31.0ms | 94× | 1 | valid |
| 18.0ms | 163× | 0 | valid |
| 2.0ms | 3× | 2 | valid |
ival-mult: 10.0ms (23% of total)ival-hypot: 7.0ms (16.1% of total)ival-log: 6.0ms (13.8% of total)ival-sin: 6.0ms (13.8% of total)adjust: 5.0ms (11.5% of total)ival-atan2: 3.0ms (6.9% of total)ival-exp: 2.0ms (4.6% of total)ival-sub: 1.0ms (2.3% of total)ival-add: 1.0ms (2.3% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 172 | 0 | - | 89 | (1.4743759222470119e+186 -5.1787474866612707e+157 -4.2357903242367834e+285 5.756311890207855e+213) | (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))) |
| 121 | 0 | - | 2 | (-4.216461023125363e-283 9.13194943192167e-159 -4.4595399901943776e+161 -3.5112504320444225e+133) | (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) |
| 9 | 0 | - | 9 | (3.946583362969103e+259 -2.4428039211342803e-62 -7.946679870652078e+192 -1.130515542483114e-55) | (*.f64 (atan2.f64 x.im x.re) y.re) |
| 6 | 0 | - | 6 | (1.5576883960496101e+290 -1.7722916594471647e-171 8.021218925589392e-194 -4.241412043658788e+289) | (*.f64 (atan2.f64 x.im x.re) y.im) |
| 1 | 0 | - | 1 | (1.9398253843656422e+202 7.864848909599759e-259 -0.8376382947392275 110816433352.8025) | (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) |
| 0 | 0 | - | 0 | - | (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) |
| 0 | 2 | (-1.275063506275344e-87 -4.368091159167529e-189 2.4166623610463566e+55 1.1131134641624393e+306) | 0 | - | (*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) |
| 0 | 0 | - | 0 | - | (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) |
| 0 | 0 | - | 0 | - | (atan2.f64 x.im x.re) |
| 0 | 0 | - | 0 | - | (*.f64 x.re x.re) |
| 0 | 0 | - | 0 | - | (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im)) |
| 0 | 0 | - | 0 | - | x.re |
| 0 | 0 | - | 0 | - | x.im |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)) |
| 0 | 0 | - | 0 | - | (*.f64 x.im x.im) |
| 0 | 0 | - | 0 | - | (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) |
| 0 | 0 | - | 0 | - | y.re |
| 0 | 0 | - | 0 | - | y.im |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
sqrt.f64 | (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) | oflow-rescue | 106 | 0 |
| ↳ | (*.f64 x.re x.re) | overflow | 64 | |
| ↳ | (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | overflow | 106 | |
| ↳ | (*.f64 x.im x.im) | overflow | 58 | |
sin.f64 | (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))) | sensitivity | 81 | 0 |
sqrt.f64 | (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) | uflow-rescue | 13 | 0 |
| ↳ | (*.f64 x.re x.re) | underflow | 61 | |
| ↳ | (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | underflow | 13 | |
| ↳ | (*.f64 x.im x.im) | underflow | 71 | |
sin.f64 | (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))) | oflow-rescue | 2 | 0 |
| ↳ | (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)) | overflow | 2 | |
| ↳ | (*.f64 x.re x.re) | overflow | 64 | |
| ↳ | (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | overflow | 106 | |
| ↳ | (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) | overflow | 2 | |
| ↳ | (*.f64 x.im x.im) | overflow | 58 | |
*.f64 | (*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) | n*o | 1 | 0 |
*.f64 | (*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) | n*u | 1 | 0 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 141 | 1 |
| - | 61 | 53 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 141 | 0 | 1 |
| - | 61 | 1 | 52 |
| number | freq |
|---|---|
| 0 | 54 |
| 1 | 200 |
| 2 | 2 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 785.0ms | 1 968× | 1 | valid |
| 151.0ms | 1 020× | 0 | valid |
| 66.0ms | 84× | 2 | valid |
Compiled 6 804 to 936 computations (86.2% saved)
ival-mult: 196.0ms (24.7% of total)adjust: 129.0ms (16.3% of total)ival-sin: 113.0ms (14.3% of total)ival-hypot: 104.0ms (13.1% of total)ival-log: 102.0ms (12.9% of total)ival-atan2: 52.0ms (6.6% of total)ival-add: 42.0ms (5.3% of total)ival-exp: 29.0ms (3.7% of total)ival-sub: 21.0ms (2.7% of total)ival-true: 2.0ms (0.3% of total)ival-assert: 1.0ms (0.1% of total)| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 136 | 536 |
| 1 | 338 | 518 |
| 2 | 690 | 518 |
| 3 | 1317 | 516 |
| 4 | 2684 | 514 |
| 5 | 4368 | 514 |
| 6 | 6298 | 514 |
| 7 | 7287 | 514 |
| 0 | 19 | 37 |
| 0 | 34 | 37 |
| 1 | 49 | 36 |
| 2 | 78 | 36 |
| 3 | 108 | 36 |
| 4 | 160 | 36 |
| 5 | 218 | 36 |
| 6 | 312 | 36 |
| 7 | 449 | 36 |
| 8 | 604 | 36 |
| 9 | 736 | 36 |
| 10 | 804 | 36 |
| 11 | 845 | 36 |
| 12 | 986 | 36 |
| 13 | 1237 | 36 |
| 14 | 1510 | 36 |
| 15 | 1605 | 36 |
| 16 | 1647 | 36 |
| 17 | 1653 | 36 |
| 0 | 1653 | 25 |
| 1× | iter limit |
| 1× | saturated |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) |
| Outputs |
|---|
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) |
(*.f64 (sin.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 (atan2.f64 x.im x.re) y.re))) (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 y.im) (atan2.f64 x.im x.re)))) |
Compiled 37 to 19 computations (48.6% saved)
Compiled 0 to 4 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| 44.9% | (*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) |
Compiled 74 to 38 computations (48.6% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 37 |
| 1 | 31 | 37 |
| 2 | 43 | 37 |
| 3 | 49 | 37 |
| 4 | 53 | 37 |
| 5 | 54 | 37 |
| 1× | saturated |
| Inputs |
|---|
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) |
| Outputs |
|---|
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))) |
(*.f64 (sin.f64 (+.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (sqrt.f64 (+.f64 (*.f64 x.im x.im) (*.f64 x.re x.re))))))) (exp.f64 (-.f64 (*.f64 y.re (log.f64 (sqrt.f64 (+.f64 (*.f64 x.im x.im) (*.f64 x.re x.re))))) (*.f64 y.im (atan2.f64 x.im x.re))))) |
| 1× | fuel |
Compiled 37 to 19 computations (48.6% saved)
Compiled 148 to 76 computations (48.6% saved)
Loading profile data...