Time bar (total: 12.9s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.9% | 0.1% | 0 |
| 0% | 99.9% | 0.1% | 1 |
| 0% | 99.9% | 0.1% | 2 |
| 0% | 99.9% | 0.1% | 3 |
| 0% | 99.9% | 0.1% | 4 |
| 0% | 99.9% | 0.1% | 5 |
| 25% | 74.9% | 0.1% | 6 |
| 25% | 74.9% | 0.1% | 7 |
| 31.2% | 68.6% | 0.1% | 8 |
| 40.6% | 59.3% | 0.1% | 9 |
| 40.6% | 59.3% | 0.1% | 10 |
| 46% | 53.8% | 0.1% | 11 |
| 52.7% | 47.2% | 0.1% | 12 |
| 52.7% | 44.6% | 2.8% | 13 |
| 55.9% | 40.6% | 3.5% | 14 |
Compiled 27 to 22 computations (18.5% saved)
| 1.3s | 1549× | body | 1024 | valid |
| 1.2s | 1359× | body | 1024 | invalid |
| 1.1s | 5262× | body | 128 | valid |
| 505.0ms | 798× | body | 512 | valid |
| 410.0ms | 687× | body | 512 | invalid |
| 351.0ms | 79× | body | 4096 | valid |
| 306.0ms | 1365× | body | 128 | invalid |
| 281.0ms | 192× | body | 2048 | valid |
| 169.0ms | 376× | body | 256 | valid |
| 130.0ms | 314× | body | 256 | invalid |
Compiled 80 to 65 computations (18.8% saved)
| 1× | egg-herbie |
| 387× | unsub-neg_binary64 |
| 324× | distribute-rgt-in_binary64 |
| 306× | distribute-lft-in_binary64 |
| 302× | *-commutative_binary64 |
| 278× | associate-+r+_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 37 |
| 1 | 37 | 37 |
| 2 | 91 | 37 |
| 3 | 275 | 37 |
| 4 | 1081 | 37 |
| 5 | 3145 | 37 |
| 1× | node limit |
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 2 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
| 31.5b | (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 -2 (-.f64 (*.f64 a a) (*.f64 b b))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) | |
| ▶ | 31.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
Compiled 153 to 116 computations (24.2% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.3b | (*.f64 (PI.f64) (/.f64 angle 180)) |
| ✓ | 7.1b | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
| ✓ | 25.9b | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
| ✓ | 26.4b | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
4 calls:
| 44.0ms | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
| 6.0ms | (*.f64 (PI.f64) (/.f64 angle 180)) |
| 3.0ms | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
| 3.0ms | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
| 1× | batch-egg-rewrite |
| 751× | prod-diff_binary64 |
| 168× | add-sqr-sqrt_binary64 |
| 161× | log1p-expm1-u_binary64 |
| 161× | expm1-log1p-u_binary64 |
| 158× | add-cbrt-cube_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 53 |
| 1 | 343 | 53 |
| 2 | 4268 | 53 |
| 1× | node limit |
4 calls:
| 57.0ms | (*.f64 (PI.f64) (/.f64 angle 180)) |
| 57.0ms | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
| 57.0ms | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
| 57.0ms | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
| 1× | egg-herbie |
| 772× | fma-def_binary64 |
| 482× | cancel-sign-sub-inv_binary64 |
| 443× | *-commutative_binary64 |
| 258× | unswap-sqr_binary64 |
| 237× | fma-neg_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 119 | 1902 |
| 1 | 371 | 1582 |
| 2 | 1463 | 1540 |
| 1× | node limit |
31 alts after pruning (31 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 96 | 31 | 127 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 98 | 31 | 129 |
| Status | Error | Program |
| 34.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3)))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2))) | |
| 47.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (sqrt.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 45.4b | (*.f64 (exp.f64 (log.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (sqrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 50.7b | (*.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3) (pow.f64 (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) | |
| 31.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) | |
| 46.7b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 51.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.9b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 48.9b | (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 36.3b | (*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 32.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) | |
| 34.4b | (*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 42.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 50.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| ▶ | 31.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 41.5b | (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 -2 (*.f64 a a))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 35.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) | |
| 45.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 54.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 32.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 43.6b | (*.f64 (*.f64 2 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 b b))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
Compiled 5531 to 4155 computations (24.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.3b | (*.f64 (PI.f64) (*.f64 angle 1/180)) |
| 7.1b | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 25.9b | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) | |
| ✓ | 26.4b | (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
2 calls:
| 3.0ms | (*.f64 (PI.f64) (*.f64 angle 1/180)) |
| 3.0ms | (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
| 1× | batch-egg-rewrite |
| 600× | log1p-expm1-u_binary64 |
| 600× | expm1-log1p-u_binary64 |
| 361× | prod-diff_binary64 |
| 126× | expm1-udef_binary64 |
| 126× | log1p-udef_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 18 |
| 1 | 140 | 18 |
| 2 | 1636 | 18 |
| 1× | node limit |
2 calls:
| 32.0ms | (*.f64 (PI.f64) (*.f64 angle 1/180)) |
| 32.0ms | (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
| 1× | egg-herbie |
| 848× | distribute-rgt-neg-in_binary64 |
| 487× | fma-def_binary64 |
| 475× | cancel-sign-sub-inv_binary64 |
| 305× | *-commutative_binary64 |
| 274× | fma-neg_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 270 |
| 1 | 84 | 270 |
| 2 | 250 | 266 |
| 3 | 1171 | 264 |
| 4 | 4105 | 258 |
| 1× | node limit |
43 alts after pruning (43 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 85 | 18 | 103 |
| Fresh | 5 | 25 | 30 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 91 | 43 | 134 |
| Status | Error | Program |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (cbrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3)) 2))) | |
| 34.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3)))) | |
| 40.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (pow.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)) 3) 1/3)) 2))) | |
| 47.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (sqrt.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 45.4b | (*.f64 (exp.f64 (log.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (sqrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 50.7b | (*.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3) (pow.f64 (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) | |
| 39.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2)) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 32.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 51.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.9b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 45.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3)) 2))) | |
| 48.9b | (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 36.3b | (*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 32.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 3) 2))) | |
| 43.6b | (*.f64 (*.f64 2 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 b b))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 42.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| ▶ | 31.5b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) |
| 50.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 3) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 35.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (expm1.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) 2))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 41.5b | (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 -2 (*.f64 a a))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.6b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 2)) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 35.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) | |
| 34.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (*.f64 angle 1/180) 3)))) 2))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) 1) 2))) | |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 37.8b | (*.f64 (expm1.f64 (log1p.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 46.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (sqrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 2)) 2))) | |
| 35.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (sin.f64 1))) 2))) | |
| 54.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) | |
| 44.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 34.4b | (*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
Compiled 6070 to 4675 computations (23% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.3b | (*.f64 (PI.f64) (*.f64 angle 1/180)) | |
| ✓ | 7.1b | (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) |
| ✓ | 25.8b | (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
| 26.4b | (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
2 calls:
| 48.0ms | (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) |
| 3.0ms | (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
| 1× | batch-egg-rewrite |
| 445× | prod-diff_binary64 |
| 249× | expm1-udef_binary64 |
| 249× | log1p-udef_binary64 |
| 152× | add-sqr-sqrt_binary64 |
| 140× | log1p-expm1-u_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 35 |
| 1 | 305 | 32 |
| 2 | 3665 | 32 |
| 1× | node limit |
2 calls:
| 45.0ms | (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) |
| 45.0ms | (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
| 1× | egg-herbie |
| 710× | fma-def_binary64 |
| 414× | cancel-sign-sub-inv_binary64 |
| 400× | sub-neg_binary64 |
| 376× | *-commutative_binary64 |
| 216× | fma-neg_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 95 | 1632 |
| 1 | 304 | 1312 |
| 2 | 1235 | 1272 |
| 3 | 4624 | 1272 |
| 1× | node limit |
43 alts after pruning (43 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 111 | 11 | 122 |
| Fresh | 10 | 32 | 42 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 122 | 43 | 165 |
| Status | Error | Program |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (cbrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3)) 2))) | |
| 45.8b | (*.f64 (pow.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) (*.f64 (pow.f64 (hypot.f64 b a) 2) 2)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 34.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3)))) | |
| 40.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (pow.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)) 3) 1/3)) 2))) | |
| 49.2b | (*.f64 (pow.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) (*.f64 (pow.f64 (hypot.f64 b a) 2) 2)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 45.4b | (*.f64 (exp.f64 (log.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 54.2b | (*.f64 (pow.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 2) (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) (pow.f64 (hypot.f64 b a) 2))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 46.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (sqrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 50.7b | (*.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3) (pow.f64 (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 39.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2)) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 51.9b | (*.f64 (pow.f64 (pow.f64 (*.f64 (hypot.f64 b a) (sqrt.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 2))) 2) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 32.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 43.5b | (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) (*.f64 (pow.f64 (hypot.f64 b a) 2) 2))) 3) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 31.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) | |
| 45.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3)) 2))) | |
| 48.9b | (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 51.6b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (pow.f64 (pow.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)) 3) 1/3)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 34.4b | (*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 3) 2))) | |
| 31.7b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (pow.f64 (cbrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 32.1b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (*.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 2)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 43.6b | (*.f64 (*.f64 2 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 b b))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.1b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (cbrt.f64 (pow.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)) 3))))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 37.3b | (*.f64 (pow.f64 (+.f64 (+.f64 (*.f64 (PI.f64) (*.f64 (*.f64 b b) (*.f64 angle 1/90))) (*.f64 (*.f64 a a) (+.f64 (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) 1/17496000) (*.f64 (*.f64 (pow.f64 angle 7) (pow.f64 (PI.f64) 7)) 1/15427944806400000000)))) (-.f64 (*.f64 (*.f64 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) 1/11337408000000) (-.f64 (*.f64 b b) (*.f64 a a))) (fma.f64 angle (*.f64 (PI.f64) (*.f64 (*.f64 a a) 1/90)) (*.f64 (*.f64 b b) (+.f64 (*.f64 (pow.f64 (PI.f64) 7) (*.f64 (pow.f64 angle 7) 1/15427944806400000000)) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) 1/17496000)))))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| ▶ | 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) |
| 31.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 3) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 35.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (expm1.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) 2))) | |
| 32.2b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 1) (sqrt.f64 (pow.f64 1 2))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 41.5b | (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 -2 (*.f64 a a))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.6b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 2)) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 35.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) | |
| 34.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (*.f64 angle 1/180) 3)))) 2))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) 1) 2))) | |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 37.8b | (*.f64 (expm1.f64 (log1p.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 46.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (sqrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 2)) 2))) | |
| 35.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (sin.f64 1))) 2))) | |
| 54.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 51.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 44.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) |
Compiled 7006 to 4982 computations (28.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.4b | (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) |
| 7.1b | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 25.9b | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) | |
| 26.4b | (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) |
1 calls:
| 3.0ms | (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) |
| 1× | batch-egg-rewrite |
| 662× | log1p-expm1-u_binary64 |
| 662× | expm1-log1p-u_binary64 |
| 361× | prod-diff_binary64 |
| 140× | log1p-udef_binary64 |
| 78× | add-sqr-sqrt_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 10 |
| 1 | 161 | 10 |
| 2 | 1821 | 10 |
| 1× | node limit |
1 calls:
| 33.0ms | (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) |
| 1× | egg-herbie |
| 848× | distribute-rgt-neg-in_binary64 |
| 487× | fma-def_binary64 |
| 475× | cancel-sign-sub-inv_binary64 |
| 305× | *-commutative_binary64 |
| 274× | fma-neg_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 174 |
| 1 | 84 | 174 |
| 2 | 250 | 170 |
| 3 | 1171 | 168 |
| 4 | 4105 | 162 |
| 1× | node limit |
45 alts after pruning (45 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 108 | 7 | 115 |
| Fresh | 4 | 38 | 42 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 113 | 45 | 158 |
| Status | Error | Program |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (cbrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3)) 2))) | |
| 45.8b | (*.f64 (pow.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) (*.f64 (pow.f64 (hypot.f64 b a) 2) 2)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 34.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3)))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3))) | |
| 40.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (pow.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)) 3) 1/3)) 2))) | |
| 49.2b | (*.f64 (pow.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) (*.f64 (pow.f64 (hypot.f64 b a) 2) 2)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 45.4b | (*.f64 (exp.f64 (log.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 54.2b | (*.f64 (pow.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 2) (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) (pow.f64 (hypot.f64 b a) 2))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 46.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (sqrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 50.7b | (*.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3) (pow.f64 (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 39.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2)) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 32.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))))))) | |
| 51.9b | (*.f64 (pow.f64 (pow.f64 (*.f64 (hypot.f64 b a) (sqrt.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 2))) 2) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 32.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 43.5b | (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) (*.f64 (pow.f64 (hypot.f64 b a) 2) 2))) 3) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 31.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) | |
| 51.6b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (pow.f64 (pow.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)) 3) 1/3)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 34.4b | (*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 31.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 3) 2))) | |
| 31.7b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (pow.f64 (cbrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 3)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 32.1b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (*.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 2)))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 43.6b | (*.f64 (*.f64 2 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 b b))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.1b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (cbrt.f64 (pow.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)) 3))))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 37.3b | (*.f64 (pow.f64 (+.f64 (+.f64 (*.f64 (PI.f64) (*.f64 (*.f64 b b) (*.f64 angle 1/90))) (*.f64 (*.f64 a a) (+.f64 (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) 1/17496000) (*.f64 (*.f64 (pow.f64 angle 7) (pow.f64 (PI.f64) 7)) 1/15427944806400000000)))) (-.f64 (*.f64 (*.f64 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) 1/11337408000000) (-.f64 (*.f64 b b) (*.f64 a a))) (fma.f64 angle (*.f64 (PI.f64) (*.f64 (*.f64 a a) 1/90)) (*.f64 (*.f64 b b) (+.f64 (*.f64 (pow.f64 (PI.f64) 7) (*.f64 (pow.f64 angle 7) 1/15427944806400000000)) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) 1/17496000)))))) 1) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 35.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (sin.f64 1)))))) | |
| 31.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 3) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 35.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (expm1.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) 2))) | |
| 32.2b | (*.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 1) (sqrt.f64 (pow.f64 1 2))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 41.5b | (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) (*.f64 -2 (*.f64 a a))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 35.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 31.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) | |
| 46.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 34.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (*.f64 angle 1/180) 3)))) 2))) | |
| 31.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.8b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 2)) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 37.8b | (*.f64 (expm1.f64 (log1p.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) | |
| 46.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (pow.f64 (sqrt.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) 2)) 2))) | |
| 35.2b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (sin.f64 1))) 2))) | |
| 54.0b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 45.5b | (*.f64 (exp.f64 (log.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 50.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) | |
| 51.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 48.9b | (*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) (*.f64 2 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 44.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) |
Compiled 5176 to 3869 computations (25.3% saved)
Total 3.3b remaining (11.2%)
Threshold costs 0b (0%)
Compiled 62597 to 50701 computations (19% saved)
Compiled 26 to 21 computations (19.2% saved)
| 1× | egg-herbie |
| 16× | *-commutative_binary64 |
| 2× | +-commutative_binary64 |
| 2× | sub-neg_binary64 |
| 1× | neg-sub0_binary64 |
| 1× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 43 | 120 |
| 1 | 63 | 120 |
| 2 | 67 | 120 |
| 3 | 69 | 120 |
| 4 | 70 | 120 |
| 1× | saturated |
Compiled 1637 to 1315 computations (19.7% saved)
Loading profile data...