Time bar (total: 19.8s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.8% | 0.2% | 0 |
| 0% | 99.8% | 0.2% | 1 |
| 0% | 99.8% | 0.2% | 2 |
| 0% | 99.8% | 0.2% | 3 |
| 0% | 99.8% | 0.2% | 4 |
| 0% | 99.8% | 0.2% | 5 |
| 0% | 99.8% | 0.2% | 6 |
| 0% | 99.8% | 0.2% | 7 |
| 0% | 99.8% | 0.2% | 8 |
| 12.5% | 87.3% | 0.2% | 9 |
| 12.5% | 87.3% | 0.2% | 10 |
| 18.7% | 81.1% | 0.2% | 11 |
| 18.7% | 81.1% | 0.2% | 12 |
| 18.7% | 81.1% | 0.2% | 13 |
| 20.5% | 79.3% | 0.2% | 14 |
Compiled 35 to 24 computations (31.4% saved)
| 1.7s | 8101× | body | 128 | valid |
| 74.0ms | 320× | body | 128 | invalid |
| 66.0ms | 86× | body | 1024 | invalid |
| 56.0ms | 66× | body | 1024 | valid |
| 42.0ms | 81× | body | 512 | invalid |
| 30.0ms | 55× | body | 512 | valid |
| 28.0ms | 24× | body | 2048 | invalid |
| 23.0ms | 54× | body | 256 | invalid |
| 13.0ms | 34× | body | 256 | valid |
Compiled 70 to 48 computations (31.4% saved)
| 2× | egg-herbie |
| 557× | exp-sum_binary64 |
| 428× | fma-neg_binary64 |
| 310× | exp-prod_binary64 |
| 288× | exp-diff_binary64 |
| 162× | distribute-rgt-in_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 154 | 495 |
| 1 | 429 | 495 |
| 2 | 1042 | 473 |
| 3 | 3765 | 473 |
| 0 | 5 | 5 |
| 1 | 5 | 5 |
| 1× | unsound |
| 1× | node limit |
(sort m n)
Compiled 34 to 23 computations (32.4% saved)
| 1× | egg-herbie |
| 446× | fma-neg_binary64 |
| 251× | times-frac_binary64 |
| 231× | cancel-sign-sub-inv_binary64 |
| 219× | exp-sum_binary64 |
| 202× | distribute-rgt-in_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 22 | 45 |
| 1 | 58 | 45 |
| 2 | 135 | 43 |
| 3 | 442 | 43 |
| 4 | 1753 | 43 |
| 1× | node limit |
1 alts after pruning (1 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 1 | 2 |
| Fresh | 1 | 0 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 2 | 1 | 3 |
| Status | Error | Program |
| ▶ | 18.7b | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
Compiled 128 to 83 computations (35.2% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)) |
| ✓ | 0.0b | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
| ✓ | 0.0b | (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) |
| ✓ | 35.4b | (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) |
48 calls:
| 35.0ms | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | n | 0 |
| 34.0ms | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | m | 0 |
| 34.0ms | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | M | 0 |
| 27.0ms | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | K | 0 |
| 16.0ms | (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)) | M | 0 |
| 1× | batch-egg-rewrite |
| 236× | add-sqr-sqrt_binary64 |
| 228× | log1p-expm1-u_binary64 |
| 228× | expm1-log1p-u_binary64 |
| 226× | add-cbrt-cube_binary64 |
| 219× | add-log-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 20 | 95 |
| 1 | 461 | 95 |
| 1× | node limit |
| 1× | egg-herbie |
| 907× | fma-def_binary64 |
| 384× | associate-+l+_binary64 |
| 354× | *-commutative_binary64 |
| 282× | associate-*r*_binary64 |
| 233× | associate--r+_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 631 | 14955 |
| 1 | 2281 | 13390 |
| 1× | node limit |
5 alts after pruning (5 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 210 | 5 | 215 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 211 | 5 | 216 |
| Status | Error | Program |
| 25.1b | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 1/2 m) M) 2) l)))) | |
| 18.7b | (log1p.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) | |
| 18.7b | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))))) | |
| ▶ | 1.5b | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
| 19.1b | (*.f64 (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) 2)) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
Compiled 18390 to 9047 computations (50.8% saved)
Found 3 expressions with local error:
| New | Error | Program |
| 0.0b | (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)) | |
| ✓ | 0.0b | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
| 0.0b | (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) |
12 calls:
| 21.0ms | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | n | -inf |
| 18.0ms | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | M | 0 |
| 17.0ms | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | m | 0 |
| 16.0ms | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | n | 0 |
| 10.0ms | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) | l | 0 |
| 1× | batch-egg-rewrite |
| 204× | add-sqr-sqrt_binary64 |
| 199× | log1p-expm1-u_binary64 |
| 199× | expm1-log1p-u_binary64 |
| 197× | add-cbrt-cube_binary64 |
| 191× | add-log-exp_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 31 |
| 1 | 399 | 29 |
| 1× | node limit |
| 1× | egg-herbie |
| 554× | associate-*r*_binary64 |
| 398× | fma-def_binary64 |
| 366× | times-frac_binary64 |
| 365× | associate-*l*_binary64 |
| 246× | fma-neg_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 251 | 5358 |
| 1 | 932 | 4677 |
| 2 | 4311 | 4677 |
| 1× | node limit |
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 153 | 0 | 153 |
| Fresh | 0 | 4 | 4 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 153 | 5 | 158 |
| Status | Error | Program |
| 25.1b | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 1/2 m) M) 2) l)))) | |
| ▶ | 18.7b | (log1p.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) |
| 18.7b | (*.f64 (cos.f64 (fma.f64 K (/.f64 (+.f64 m n) 2) (neg.f64 M))) (exp.f64 (+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))))) | |
| ✓ | 1.5b | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
| 19.1b | (*.f64 (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) 2)) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
Compiled 8508 to 4144 computations (51.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (log1p.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) |
| ✓ | 0.0b | (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) |
| ✓ | 0.0b | (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) |
| ✓ | 35.4b | (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) |
51 calls:
| 312.0ms | (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) | M | 0 |
| 289.0ms | (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) | n | 0 |
| 274.0ms | (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) | m | 0 |
| 115.0ms | (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) | K | 0 |
| 36.0ms | (log1p.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) | n | 0 |
| 1× | batch-egg-rewrite |
| 249× | add-sqr-sqrt_binary64 |
| 243× | expm1-log1p-u_binary64 |
| 242× | log1p-expm1-u_binary64 |
| 238× | add-cbrt-cube_binary64 |
| 231× | add-log-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 116 |
| 1 | 497 | 116 |
| 1× | node limit |
| 1× | egg-herbie |
| 824× | fma-def_binary64 |
| 419× | +-commutative_binary64 |
| 352× | associate-+r+_binary64 |
| 195× | sub-neg_binary64 |
| 86× | sqr-pow_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1850 | 47726 |
| 1 | 3910 | 45278 |
| 1× | node limit |
6 alts after pruning (5 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 213 | 4 | 217 |
| Fresh | 2 | 1 | 3 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 216 | 6 | 222 |
| Status | Error | Program |
| ▶ | 18.7b | (log1p.f64 (log.f64 (+.f64 1 (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))))))) |
| 33.9b | (log1p.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 l 2) (*.f64 (pow.f64 (exp.f64 (-.f64 (+.f64 (*.f64 m M) (+.f64 (*.f64 n M) (fabs.f64 (-.f64 n m)))) (+.f64 (*.f64 1/4 (pow.f64 m 2)) (+.f64 (pow.f64 M 2) (+.f64 (*.f64 1/2 (*.f64 n m)) (*.f64 1/4 (pow.f64 n 2))))))) 2) (*.f64 (exp.f64 (*.f64 (exp.f64 (-.f64 (+.f64 (*.f64 m M) (+.f64 (*.f64 n M) (fabs.f64 (-.f64 n m)))) (+.f64 (*.f64 1/4 (pow.f64 m 2)) (+.f64 (pow.f64 M 2) (+.f64 (*.f64 1/2 (*.f64 n m)) (*.f64 1/4 (pow.f64 n 2))))))) (cos.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 n K)) (*.f64 1/2 (*.f64 K m))) M)))) (pow.f64 (cos.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 n K)) (*.f64 1/2 (*.f64 K m))) M)) 2))))) (+.f64 (exp.f64 (*.f64 (exp.f64 (-.f64 (+.f64 (*.f64 m M) (+.f64 (*.f64 n M) (fabs.f64 (-.f64 n m)))) (+.f64 (*.f64 1/4 (pow.f64 m 2)) (+.f64 (pow.f64 M 2) (+.f64 (*.f64 1/2 (*.f64 n m)) (*.f64 1/4 (pow.f64 n 2))))))) (cos.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 n K)) (*.f64 1/2 (*.f64 K m))) M)))) (*.f64 1/2 (*.f64 (pow.f64 l 2) (*.f64 (exp.f64 (-.f64 (+.f64 (*.f64 m M) (+.f64 (*.f64 n M) (fabs.f64 (-.f64 n m)))) (+.f64 (*.f64 1/4 (pow.f64 m 2)) (+.f64 (pow.f64 M 2) (+.f64 (*.f64 1/2 (*.f64 n m)) (*.f64 1/4 (pow.f64 n 2))))))) (*.f64 (exp.f64 (*.f64 (exp.f64 (-.f64 (+.f64 (*.f64 m M) (+.f64 (*.f64 n M) (fabs.f64 (-.f64 n m)))) (+.f64 (*.f64 1/4 (pow.f64 m 2)) (+.f64 (pow.f64 M 2) (+.f64 (*.f64 1/2 (*.f64 n m)) (*.f64 1/4 (pow.f64 n 2))))))) (cos.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 n K)) (*.f64 1/2 (*.f64 K m))) M)))) (cos.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 n K)) (*.f64 1/2 (*.f64 K m))) M)))))))) (+.f64 1 (*.f64 l (*.f64 (exp.f64 (-.f64 (+.f64 (*.f64 m M) (+.f64 (*.f64 n M) (fabs.f64 (-.f64 n m)))) (+.f64 (*.f64 1/4 (pow.f64 m 2)) (+.f64 (pow.f64 M 2) (+.f64 (*.f64 1/2 (*.f64 n m)) (*.f64 1/4 (pow.f64 n 2))))))) (*.f64 (exp.f64 (*.f64 (exp.f64 (-.f64 (+.f64 (*.f64 m M) (+.f64 (*.f64 n M) (fabs.f64 (-.f64 n m)))) (+.f64 (*.f64 1/4 (pow.f64 m 2)) (+.f64 (pow.f64 M 2) (+.f64 (*.f64 1/2 (*.f64 n m)) (*.f64 1/4 (pow.f64 n 2))))))) (cos.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 n K)) (*.f64 1/2 (*.f64 K m))) M)))) (cos.f64 (-.f64 (+.f64 (*.f64 1/2 (*.f64 n K)) (*.f64 1/2 (*.f64 K m))) M)))))))) | |
| 25.1b | (log1p.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 1/2 m) M) 2) l)))))) | |
| 18.7b | (log1p.f64 (cbrt.f64 (pow.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) 3))) | |
| ✓ | 1.5b | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
| 19.1b | (*.f64 (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) 2)) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
Compiled 61204 to 30058 computations (50.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) |
| 0.0b | (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) | |
| 0.0b | (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) | |
| 35.4b | (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) |
15 calls:
| 1.5s | (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) | M | 0 |
| 1.3s | (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) | m | 0 |
| 1.3s | (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) | n | 0 |
| 309.0ms | (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) | K | 0 |
| 86.0ms | (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l)))))) | l | 0 |
| 1× | batch-egg-rewrite |
| 257× | add-sqr-sqrt_binary64 |
| 249× | log1p-expm1-u_binary64 |
| 249× | expm1-log1p-u_binary64 |
| 245× | add-cbrt-cube_binary64 |
| 238× | add-log-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 47 |
| 1 | 511 | 47 |
| 1× | node limit |
| 1× | egg-herbie |
| 876× | fma-def_binary64 |
| 451× | +-commutative_binary64 |
| 418× | associate-+r+_binary64 |
| 47× | sub-neg_binary64 |
| 46× | sqr-pow_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 2643 | 78906 |
| 1 | 4787 | 74855 |
| 1× | node limit |
7 alts after pruning (5 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 211 | 2 | 213 |
| Fresh | 1 | 3 | 4 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 212 | 7 | 219 |
| Status | Error | Program |
| 25.1b | (log1p.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 1/2 m) M) 2) l)))))) | |
| 33.7b | (log1p.f64 (log.f64 (+.f64 1 (+.f64 (exp.f64 (expm1.f64 (*.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))))) (-.f64 (fma.f64 1/2 (fma.f64 (exp.f64 (expm1.f64 (*.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))))) (*.f64 (*.f64 l l) (*.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) (*.f64 (pow.f64 (exp.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m)))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))))) (*.f64 (exp.f64 (expm1.f64 (*.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))))) (*.f64 (*.f64 l l) (*.f64 (pow.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) 2) (*.f64 (pow.f64 (pow.f64 (exp.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m)))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))) 2) (pow.f64 (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M))) 2)))))) (*.f64 1/2 (*.f64 (exp.f64 (expm1.f64 (*.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))))) (*.f64 (*.f64 l l) (*.f64 (pow.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) 2) (*.f64 (pow.f64 (exp.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m)))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))) (pow.f64 (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M))) 2))))))) (fma.f64 (exp.f64 (expm1.f64 (*.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))))) (*.f64 l (*.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m))))))) (*.f64 (pow.f64 (exp.f64 (exp.f64 (-.f64 (fma.f64 m M (fma.f64 n M (fabs.f64 (-.f64 n m)))) (fma.f64 1/4 (*.f64 m m) (fma.f64 M M (fma.f64 1/4 (*.f64 n n) (*.f64 1/2 (*.f64 n m)))))))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))) (cos.f64 (fma.f64 1/2 (fma.f64 n K (*.f64 K m)) (neg.f64 M)))))) 1)))))) | |
| 19.2b | (log1p.f64 (log.f64 (+.f64 1 (pow.f64 (sqrt.f64 (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))))) 2)))) | |
| 18.7b | (log1p.f64 (cbrt.f64 (pow.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))) 3))) | |
| ✓ | 18.7b | (log1p.f64 (log.f64 (+.f64 1 (expm1.f64 (expm1.f64 (*.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (*.f64 (+.f64 m n) 1/2) M) 2) l))))))))) |
| ✓ | 1.5b | (*.f64 (cos.f64 M) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
| 19.1b | (*.f64 (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 K (*.f64 (+.f64 m n) 1/2) (neg.f64 M))) 2)) (exp.f64 (-.f64 (fabs.f64 (-.f64 n m)) (+.f64 (pow.f64 (-.f64 (/.f64 (+.f64 m n) 2) M) 2) l)))) |
Compiled 153088 to 76975 computations (49.7% saved)
Total 0.1b remaining (11.4%)
Threshold costs 0.1b (11.4%)
Compiled 28310 to 17376 computations (38.6% saved)
| 1× | egg-herbie |
| 12× | +-commutative_binary64 |
| 10× | sub-neg_binary64 |
| 7× | *-commutative_binary64 |
| 6× | neg-sub0_binary64 |
| 6× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 31 |
| 1 | 28 | 31 |
| 2 | 45 | 31 |
| 3 | 60 | 31 |
| 4 | 69 | 31 |
| 5 | 72 | 31 |
| 1× | saturated |
| 1× | fuel |
(sort m n)
Compiled 921 to 457 computations (50.4% saved)
Loading profile data...