
Time bar (total: 4.6s)
| 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 |
| 100% | 100% | 0% | 0% | 0% | 0% | 0% | 2 |
Compiled 15 to 8 computations (46.7% saved)
ival-sub: 0.0ms (0% of total)ival-div: 0.0ms (0% of total)ival-exp: 0.0ms (0% of total)ival-add: 0.0ms (0% of total)const: 0.0ms (0% of total)ival-neg: 0.0ms (0% of total)| 902.0ms | 7924× | 0 | unsamplable |
| 2.5s | 7525× | 1 | valid |
| 86.0ms | 731× | 0 | valid |
ival-exp: 1.6s (61.4% of total)backward-pass: 262.0ms (10% of total)ival-div: 231.0ms (8.8% of total)ival-neg: 175.0ms (6.7% of total)ival-add: 166.0ms (6.3% of total)ival-sub: 155.0ms (5.9% of total)const: 23.0ms (0.9% of total)| 1× | egg-herbie |
| 689× | fma-define |
| 254× | fma-neg |
| 158× | div-sub |
| 128× | times-frac |
| 115× | distribute-lft-in |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 220 |
| 1 | 51 | 220 |
| 2 | 108 | 220 |
| 3 | 238 | 220 |
| 4 | 576 | 220 |
| 5 | 1291 | 220 |
| 6 | 2484 | 220 |
| 7 | 2562 | 220 |
| 8 | 2597 | 220 |
| 9 | 2628 | 220 |
| 10 | 2666 | 220 |
| 11 | 2682 | 220 |
| 12 | 2690 | 220 |
| 1× | saturated |
| Inputs |
|---|
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x))))) |
(neg.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))))) |
| Outputs |
|---|
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x))))) |
(/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
(neg.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))) (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 (neg.f64 (neg.f64 x)))))) |
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
(negabs x)
| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 245 | 0 | - | 0 | - | (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) |
| 5 | 0 | - | 0 | - | (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
| 0 | 0 | - | 0 | - | x |
| 0 | 0 | - | 0 | - | (exp.f64 (neg.f64 x)) |
| 0 | 0 | - | 0 | - | (neg.f64 x) |
| 0 | 0 | - | 0 | - | (exp.f64 x) |
| 0 | 0 | - | 0 | - | (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) |
| 93.0ms | 236× | 1024 | valid |
| 29.0ms | 134× | 512 | valid |
| 13.0ms | 112× | 256 | valid |
| 12.0ms | 30× | 2048 | valid |
Compiled 84 to 23 computations (72.6% saved)
ival-exp: 58.0ms (64.2% of total)ival-div: 9.0ms (10% of total)ival-neg: 8.0ms (8.9% of total)ival-sub: 7.0ms (7.8% of total)ival-add: 7.0ms (7.8% of total)const: 1.0ms (1.1% of total)Compiled 1 to 1 computations (0% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 10.5% | (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
Compiled 14 to 7 computations (50% saved)
Found 3 expressions with local error:
| New | Accuracy | Program |
|---|---|---|
| ✓ | 100.0% | (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) |
| ✓ | 98.1% | (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
| ✓ | 12.4% | (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) |
| 61.0ms | 118× | 1024 | valid |
| 29.0ms | 67× | 512 | valid |
| 6.0ms | 56× | 256 | valid |
| 6.0ms | 15× | 2048 | valid |
Compiled 35 to 8 computations (77.1% saved)
ival-exp: 42.0ms (74.9% of total)ival-div: 4.0ms (7.1% of total)ival-sub: 3.0ms (5.3% of total)ival-neg: 3.0ms (5.3% of total)ival-add: 3.0ms (5.3% of total)const: 0.0ms (0% of total)| Inputs |
|---|
#<alt (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))> |
#<alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))))> |
#<alt (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))> |
| Outputs |
|---|
#<alt (*.f64 #s(literal 2 binary64) x)> |
#<alt (*.f64 x (+.f64 #s(literal 2 binary64) (*.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 2 binary64)))))> |
#<alt (*.f64 x (+.f64 #s(literal 2 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/3 binary64) (*.f64 #s(literal 1/60 binary64) (pow.f64 x #s(literal 2 binary64)))))))> |
#<alt (*.f64 x (+.f64 #s(literal 2 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/3 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/60 binary64) (*.f64 #s(literal 1/2520 binary64) (pow.f64 x #s(literal 2 binary64)))))))))> |
#<alt (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
#<alt (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
#<alt (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
#<alt (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
#<alt x> |
#<alt (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/3 binary64) (pow.f64 x #s(literal 2 binary64)))))> |
#<alt (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 2/15 binary64) (pow.f64 x #s(literal 2 binary64))) #s(literal 1/3 binary64)))))> |
#<alt (*.f64 x (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (-.f64 (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 2/15 binary64) (*.f64 #s(literal -17/315 binary64) (pow.f64 x #s(literal 2 binary64))))) #s(literal 1/3 binary64)))))> |
#<alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))))> |
#<alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))))> |
#<alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))))> |
#<alt (/.f64 (-.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))) (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x))))> |
#<alt #s(literal 2 binary64)> |
#<alt (+.f64 #s(literal 2 binary64) (pow.f64 x #s(literal 2 binary64)))> |
#<alt (+.f64 #s(literal 2 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/12 binary64) (pow.f64 x #s(literal 2 binary64))))))> |
#<alt (+.f64 #s(literal 2 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 x #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 #s(literal 1/360 binary64) (pow.f64 x #s(literal 2 binary64))))))))> |
#<alt (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
#<alt (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
#<alt (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
#<alt (+.f64 (exp.f64 x) (exp.f64 (*.f64 #s(literal -1 binary64) x)))> |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) |
| 1.0ms | x | @ | -inf | (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) |
| 1.0ms | x | @ | 0 | (- (exp x) (exp (neg x))) |
| 0.0ms | x | @ | 0 | (/ (- (exp x) (exp (neg x))) (+ (exp x) (exp (neg x)))) |
| 0.0ms | x | @ | -inf | (- (exp x) (exp (neg x))) |
| 1× | batch-egg-rewrite |
| 80× | add-exp-log |
| 80× | add-log-exp |
| 80× | add-cube-cbrt |
| 78× | log1p-expm1-u |
| 78× | expm1-log1p-u |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 42 |
| 1 | 174 | 42 |
| 2 | 3404 | 42 |
| 1× | unsound |
| Inputs |
|---|
(-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) |
(/.f64 (-.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) (+.f64 (exp.f64 x) (exp.f64 (neg.f64 x)))) |
(+.f64 (exp.f64 x) (exp.f64 (neg.f64 x))) |
| Outputs |
|---|
Loading profile data...