
Time bar (total: 15.0s)
| 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)
| 25.0ms | 83× | 1 | valid |
| 19.0ms | 174× | 0 | valid |
| 2.0ms | 3× | 2 | valid |
ival-mult: 9.0ms (23.5% of total)ival-hypot: 6.0ms (15.7% of total)ival-log: 6.0ms (15.7% of total)ival-sin: 5.0ms (13.1% of total)ival-atan2: 4.0ms (10.5% of total)adjust: 3.0ms (7.8% of total)ival-exp: 2.0ms (5.2% of total)ival-sub: 1.0ms (2.6% of total)ival-add: 1.0ms (2.6% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 173 | 0 | - | 0 | - | (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))) |
| 125 | 0 | - | 0 | - | (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) |
| 8 | 0 | - | 2 | (3.0920689001324857e+242 7.192783245464506e-76 -6.514922559732674e+274 -7.173415423019093e-69) | (*.f64 (atan2.f64 x.im x.re) y.re) |
| 7 | 0 | - | 2 | (5285639.642786502 -1.0664727472701885e-305 5.037973993554986e-71 2.7450428000231437e+209) | (*.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 | 0 | - | 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 | - | (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 | - | 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 | |
|---|---|---|---|---|
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 | 173 | 0 |
sqrt.f64 | (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) | oflow-rescue | 105 | 0 |
| ↳ | (*.f64 x.re x.re) | overflow | 58 | |
| ↳ | (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | overflow | 105 | |
| ↳ | (*.f64 x.im x.im) | overflow | 64 | |
sqrt.f64 | (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) | uflow-rescue | 5 | 0 |
| ↳ | (*.f64 x.re x.re) | underflow | 62 | |
| ↳ | (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | underflow | 20 | |
| ↳ | (*.f64 x.im x.im) | underflow | 65 | |
*.f64 | (*.f64 (atan2.f64 x.im x.re) y.re) | n*u | 3 | 0 |
*.f64 | (*.f64 (atan2.f64 x.im x.re) y.im) | n*u | 2 | 0 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 147 | 3 |
| - | 69 | 37 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 147 | 0 | 3 |
| - | 69 | 0 | 37 |
| number | freq |
|---|---|
| 0 | 40 |
| 1 | 145 |
| 2 | 70 |
| 3 | 1 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 5.3s | 14 940× | 1 | valid |
| 1.1s | 7 650× | 0 | valid |
| 306.0ms | 450× | 2 | valid |
Compiled 25 605 to 3 600 computations (85.9% saved)
ival-mult: 1.4s (26.1% of total)ival-sin: 804.0ms (15.1% of total)ival-log: 777.0ms (14.6% of total)ival-hypot: 724.0ms (13.6% of total)adjust: 535.0ms (10% of total)ival-atan2: 419.0ms (7.9% of total)ival-add: 295.0ms (5.5% of total)ival-exp: 203.0ms (3.8% of total)ival-sub: 154.0ms (2.9% of total)ival-true: 22.0ms (0.4% of total)ival-assert: 11.0ms (0.2% 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 |
|---|---|---|
| 41.4% | (*.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...