Time bar (total: 42.2s)
| 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 |
| 0% | 99.8% | 0.2% | 9 |
| 0% | 99.8% | 0.2% | 10 |
| 0% | 99.8% | 0.2% | 11 |
| 0% | 99.8% | 0.2% | 12 |
| 0.6% | 99.2% | 0.2% | 13 |
| 1.8% | 98% | 0.2% | 14 |
Compiled 71 to 47 computations (33.8% saved)
| 1× | intervals |
| 477.0ms | 166× | body | 1024 | valid |
| 71.0ms | 42× | body | 512 | valid |
| 68.0ms | 14× | body | 2048 | valid |
| 16.0ms | 15× | body | 256 | valid |
| 8.0ms | 19× | body | 128 | valid |
Compiled 146 to 98 computations (32.9% saved)
| 1× | egg-herbie |
| 698× | fma-def_binary64 |
| 571× | fma-neg_binary64 |
| 563× | sub-neg_binary64 |
| 520× | distribute-rgt-neg-in_binary64 |
| 460× | sqr-pow_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 27 | 103 |
| 1 | 59 | 99 |
| 2 | 123 | 99 |
| 3 | 247 | 99 |
| 4 | 552 | 99 |
| 5 | 1018 | 99 |
| 6 | 1698 | 99 |
| 7 | 2589 | 99 |
| 8 | 3560 | 99 |
| 9 | 3893 | 99 |
| 10 | 4414 | 99 |
| 11 | 4607 | 99 |
| 12 | 4426 | 99 |
| 13 | 4413 | 99 |
| 14 | 4778 | 99 |
| 15 | 4761 | 99 |
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 1 | 1 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 2 | 2 |
| Status | Error | Program |
| 22.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))))) | |
| ▶ | 22.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) |
Compiled 344 to 224 computations (34.9% saved)
Found 4 expressions with local error:
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 1× | rewrite-expression-head |
| 4× | *-un-lft-identity_binary64 |
| 4× | add-sqr-sqrt_binary64 |
| 4× | add-cube-cbrt_binary64 |
| 4× | add-cbrt-cube_binary64 |
| 4× | add-exp-log_binary64 |
4 calls:
| 6.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 2789 to 1570 computations (43.7% saved)
4 calls:
| 29.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 28.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 26.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 25.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 6985 to 4489 computations (35.7% saved)
| 1× | egg-herbie |
| 523× | associate-*r*_binary64 |
| 485× | fma-neg_binary64 |
| 457× | distribute-rgt-neg-in_binary64 |
| 448× | distribute-lft-neg-in_binary64 |
| 420× | associate-*l*_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 261 | 5190 |
| 1 | 570 | 5098 |
| 2 | 1057 | 5064 |
| 3 | 3114 | 5048 |
| 4 | 5062 | 5048 |
10 alts after pruning (10 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 35 | 9 | 44 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 36 | 10 | 46 |
| Status | Error | Program |
| 38.1b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| ▶ | 22.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))))) |
| 33.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 37.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (sin.f64 (*.f64 lambda1 1/2)) (fma.f64 (cos.f64 (*.f64 lambda1 1/2)) (fma.f64 1/48 (pow.f64 lambda2 3) (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (sin.f64 (*.f64 lambda1 1/2)) (*.f64 lambda2 lambda2)) -1/8))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 36.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.2b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 37.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (sin.f64 (*.f64 -1/2 lambda2)) (fma.f64 (cos.f64 (*.f64 -1/2 lambda2)) (fma.f64 lambda1 1/2 (*.f64 (pow.f64 lambda1 3) -1/48)) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 lambda1 lambda1) -1/8)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 35.8b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 38.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (-.f64 (sin.f64 (*.f64 lambda1 1/2)) (fma.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (*.f64 1/8 (*.f64 (sin.f64 (*.f64 lambda1 1/2)) (*.f64 lambda2 lambda2))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) |
Compiled 2842 to 1791 computations (37% saved)
Found 4 expressions with local error:
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 1× | rewrite-expression-head |
| 4× | *-un-lft-identity_binary64 |
| 4× | add-sqr-sqrt_binary64 |
| 4× | add-cube-cbrt_binary64 |
| 4× | add-cbrt-cube_binary64 |
| 4× | add-exp-log_binary64 |
4 calls:
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 2869 to 1650 computations (42.5% saved)
4 calls:
| 28.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 27.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 25.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 25.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 7177 to 4681 computations (34.8% saved)
| 1× | egg-herbie |
| 719× | fma-def_binary64 |
| 709× | associate-*r*_binary64 |
| 655× | associate-*l*_binary64 |
| 438× | fma-neg_binary64 |
| 350× | cancel-sign-sub-inv_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 282 | 5358 |
| 1 | 652 | 5098 |
| 2 | 1405 | 5064 |
| 3 | 4632 | 5056 |
| 4 | 5001 | 5056 |
13 alts after pruning (12 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 42 | 4 | 46 |
| Fresh | 1 | 8 | 9 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 43 | 13 | 56 |
| Status | Error | Program |
| 38.1b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| ✓ | 22.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))))) |
| 38.4b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 33.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 37.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (sin.f64 (*.f64 lambda1 1/2)) (fma.f64 (cos.f64 (*.f64 lambda1 1/2)) (fma.f64 1/48 (pow.f64 lambda2 3) (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (sin.f64 (*.f64 lambda1 1/2)) (*.f64 lambda2 lambda2)) -1/8))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 36.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.2b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 32.2b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 37.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (sin.f64 (*.f64 -1/2 lambda2)) (fma.f64 (cos.f64 (*.f64 -1/2 lambda2)) (fma.f64 lambda1 1/2 (*.f64 (pow.f64 lambda1 3) -1/48)) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 lambda1 lambda1) -1/8)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))))) | |
| 35.8b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| ▶ | 22.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) |
| 33.9b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) |
Compiled 3170 to 2013 computations (36.5% saved)
Found 4 expressions with local error:
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 7.4b | (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) |
| 1× | rewrite-expression-head |
| 12× | cbrt-prod_binary64 |
| 7× | *-un-lft-identity_binary64 |
| 7× | add-sqr-sqrt_binary64 |
| 7× | add-cube-cbrt_binary64 |
| 4× | add-cbrt-cube_binary64 |
4 calls:
| 5.0ms | (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 3683 to 2142 computations (41.8% saved)
4 calls:
| 95.0ms | (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) |
| 32.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 31.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 30.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 7569 to 4948 computations (34.6% saved)
| 1× | egg-herbie |
| 567× | *-commutative_binary64 |
| 520× | distribute-rgt-in_binary64 |
| 513× | fma-neg_binary64 |
| 498× | distribute-lft-in_binary64 |
| 433× | fma-def_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 324 | 5770 |
| 1 | 604 | 5516 |
| 2 | 1451 | 5379 |
| 3 | 3993 | 5361 |
| 4 | 4954 | 5361 |
| 5 | 5006 | 5361 |
18 alts after pruning (17 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 61 | 9 | 70 |
| Fresh | 3 | 8 | 11 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 65 | 18 | 83 |
| Status | Error | Program |
| ▶ | 22.4b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6)) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) |
| 33.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 32.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 38.1b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| ✓ | 22.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))))) |
| 34.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 37.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (sin.f64 (*.f64 lambda1 1/2)) (fma.f64 (cos.f64 (*.f64 lambda1 1/2)) (fma.f64 1/48 (pow.f64 lambda2 3) (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (sin.f64 (*.f64 lambda1 1/2)) (*.f64 lambda2 lambda2)) -1/8))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6)) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 38.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 33.1b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 33.9b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6)) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 38.4b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 36.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 37.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (sin.f64 (*.f64 -1/2 lambda2)) (fma.f64 (cos.f64 (*.f64 -1/2 lambda2)) (fma.f64 lambda1 1/2 (*.f64 (pow.f64 lambda1 3) -1/48)) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 lambda1 lambda1) -1/8)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 35.8b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) |
Compiled 4733 to 3013 computations (36.3% saved)
Found 4 expressions with local error:
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.8b | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 1× | rewrite-expression-head |
| 4× | *-un-lft-identity_binary64 |
| 4× | add-sqr-sqrt_binary64 |
| 4× | add-cube-cbrt_binary64 |
| 4× | add-cbrt-cube_binary64 |
| 4× | add-exp-log_binary64 |
4 calls:
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 4.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 3.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 3269 to 1930 computations (41% saved)
4 calls:
| 34.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 33.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 30.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
| 28.0ms | (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) |
Compiled 7935 to 5216 computations (34.3% saved)
| 1× | egg-herbie |
| 553× | fma-def_binary64 |
| 475× | fma-neg_binary64 |
| 298× | cancel-sign-sub-inv_binary64 |
| 265× | distribute-rgt-in_binary64 |
| 243× | distribute-lft-in_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 306 | 5885 |
| 1 | 658 | 5665 |
| 2 | 1648 | 5567 |
| 3 | 3686 | 5555 |
| 4 | 4985 | 5555 |
| 5 | 5077 | 5555 |
24 alts after pruning (23 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 35 | 10 | 45 |
| Fresh | 3 | 13 | 16 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 39 | 24 | 63 |
| Status | Error | Program |
| 37.2b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6)) (cbrt.f64 (+.f64 (sin.f64 (*.f64 -1/2 lambda2)) (fma.f64 (cos.f64 (*.f64 -1/2 lambda2)) (-.f64 (*.f64 lambda1 1/2) (*.f64 1/48 (pow.f64 lambda1 3))) (*.f64 (*.f64 lambda1 lambda1) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) -1/8)))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 38.4b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2)))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 35.9b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2)))) (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 33.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3))) 6)) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 32.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 38.1b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| ✓ | 22.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))))) |
| 33.9b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 lambda1 1/2))) 6))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.0b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.4b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 lambda1 1/2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6)) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 38.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.1b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6))) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 3))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 33.1b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 33.9b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 36.5b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (cbrt.f64 (fma.f64 -1/2 (*.f64 lambda2 (cos.f64 (*.f64 lambda1 1/2))) (sin.f64 (*.f64 lambda1 1/2)))) (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 22.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6)) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) 3)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.4b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 lambda1 1/2))) (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 35.2b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2)))) 6))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 33.6b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 -1/2 lambda2))) 6)) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 34.3b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 lambda1 1/2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 6) (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) | |
| 35.8b | (*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (fma.f64 1/2 (*.f64 lambda1 (cos.f64 (*.f64 -1/2 lambda2))) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))) |
Compiled 4669 to 2997 computations (35.8% saved)
Total 0.9b remaining (3.8%)
Threshold costs 0.9b (3.8%)
Compiled 169540 to 114988 computations (32.2% saved)
| 1× | egg-herbie |
| 7× | *-commutative_binary64 |
| 6× | +-commutative_binary64 |
| 6× | sub-neg_binary64 |
| 3× | neg-sub0_binary64 |
| 3× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 29 | 103 |
| 1 | 41 | 103 |
| 2 | 51 | 103 |
| 3 | 57 | 103 |
| 4 | 60 | 103 |
| 5 | 59 | 103 |
(sort phi1 phi2)
(sort lambda1 lambda2)
Compiled 350 to 230 computations (34.3% saved)
| 1× | intervals |
| 14.9s | 5273× | body | 1024 | valid |
| 2.3s | 415× | body | 2048 | valid |
| 2.3s | 1269× | body | 512 | valid |
| 382.0ms | 399× | body | 256 | valid |
| 277.0ms | 644× | body | 128 | valid |
| 5.0ms | 2× | body | 1024 | invalid |
Compiled 1926 to 1326 computations (31.2% saved)
Loading profile data...