Time bar (total: 19.1s)
| 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.8% | 99% | 0.2% | 11 |
| 4.7% | 95.1% | 0.2% | 12 |
| 5.9% | 93.2% | 0.8% | 13 |
| 8.5% | 90.2% | 1.3% | 14 |
Compiled 38 to 22 computations (42.1% saved)
(sort lambda1 lambda2)
(sort phi1 phi2)
| 1.6s | 6244× | body | 128 | valid |
| 1.3s | 784× | body | 1024 | valid |
| 631.0ms | 491× | body | 1024 | invalid |
| 538.0ms | 2449× | body | 128 | invalid |
| 459.0ms | 769× | body | 512 | valid |
| 303.0ms | 398× | body | 512 | invalid |
| 225.0ms | 451× | body | 256 | valid |
| 77.0ms | 191× | body | 256 | invalid |
| 15.0ms | 8× | body | 2048 | valid |
Compiled 113 to 65 computations (42.5% saved)
| 1× | egg-herbie |
| 1413× | unsub-neg_binary64 |
| 897× | distribute-neg-out_binary64 |
| 703× | fma-def_binary64 |
| 583× | neg-sub0_binary64 |
| 478× | sub-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 24 |
| 1 | 35 | 24 |
| 2 | 83 | 24 |
| 3 | 224 | 24 |
| 4 | 658 | 24 |
| 5 | 2038 | 24 |
| 6 | 3128 | 24 |
| 7 | 3593 | 24 |
| 8 | 4399 | 24 |
| 9 | 4364 | 24 |
| 10 | 4430 | 24 |
| 11 | 4468 | 24 |
| 12 | 5035 | 24 |
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 |
| ▶ | 3.3b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) |
| 34.3b | (*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2))))) |
Compiled 169 to 97 computations (42.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)) |
| ✓ | 0.1b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) |
| ✓ | 0.1b | (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| ✓ | 3.2b | (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) |
4 calls:
| 862.0ms | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) |
| 486.0ms | (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)) |
| 23.0ms | (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| 4.0ms | (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) |
| 1× | batch-egg-rewrite |
| 307× | expm1-udef_binary64 |
| 307× | log1p-udef_binary64 |
| 170× | add-sqr-sqrt_binary64 |
| 162× | log1p-expm1-u_binary64 |
| 162× | expm1-log1p-u_binary64 |
4 calls:
| 69.0ms | (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)) |
| 69.0ms | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))) |
| 69.0ms | (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| 69.0ms | (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 15 | 69 |
| 1 | 331 | 69 |
| 2 | 4247 | 69 |
| 3 | 5102 | 69 |
| 1× | egg-herbie |
| 1133× | associate-*r*_binary64 |
| 461× | fma-def_binary64 |
| 141× | associate-*l*_binary64 |
| 85× | sub-neg_binary64 |
| 65× | associate-/l*_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 2196 | 44761 |
| 1 | 5035 | 44761 |
14 alts after pruning (14 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 259 | 14 | 273 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 261 | 14 | 275 |
| Status | Error | Program |
| 4.4b | (*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3)) | |
| 3.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)) (-.f64 phi1 phi2))) | |
| 23.2b | (expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 37.3b | (*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2))) | |
| 14.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))))) (-.f64 phi1 phi2))) | |
| 4.4b | (pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3) | |
| 7.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2))) | |
| 52.3b | (pow.f64 (pow.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3) 1/3) | |
| 8.2b | (*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 3.6b | (*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2)) | |
| ▶ | 3.3b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1)) (-.f64 phi1 phi2))) |
| 43.8b | (*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1)))))) | |
| 27.9b | (-.f64 (*.f64 R phi2) (*.f64 phi1 R)) | |
| 29.7b | (pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2) |
Compiled 59908 to 41160 computations (31.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.2b | (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) |
| ✓ | 0.3b | (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| ✓ | 0.5b | (-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1) |
| 3.2b | (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) |
3 calls:
| 383.0ms | (-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1) |
| 382.0ms | (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) |
| 379.0ms | (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| 1× | batch-egg-rewrite |
| 706× | prod-diff_binary64 |
| 471× | fma-udef_binary64 |
| 283× | fma-def_binary64 |
| 231× | fma-neg_binary64 |
| 184× | log1p-udef_binary64 |
3 calls:
| 110.0ms | (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) |
| 110.0ms | (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| 110.0ms | (-.f64 (exp.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 1) |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 33 |
| 1 | 218 | 32 |
| 2 | 2593 | 32 |
| 3 | 4699 | 32 |
| 4 | 4727 | 32 |
| 5 | 4935 | 32 |
| 1× | egg-herbie |
| 936× | times-frac_binary64 |
| 660× | associate-/l*_binary64 |
| 404× | fma-def_binary64 |
| 348× | cancel-sign-sub-inv_binary64 |
| 134× | associate-/r/_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 120 | 1633 |
| 1 | 394 | 1613 |
| 2 | 1430 | 1478 |
| 3 | 5231 | 1478 |
17 alts after pruning (17 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 176 | 6 | 182 |
| Fresh | 2 | 11 | 13 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 179 | 17 | 196 |
| Status | Error | Program |
| 27.6b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cos.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cos.f64 1) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sin.f64 1)))) (-.f64 phi1 phi2))) | |
| 3.6b | (*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2)) | |
| 4.2b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cbrt.f64 (+.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 1)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) 1)) 2) -1)) (-.f64 phi1 phi2))) | |
| 4.4b | (*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3)) | |
| ▶ | 3.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)) (-.f64 phi1 phi2))) |
| 23.2b | (expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 37.3b | (*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2))) | |
| 4.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3)) 1)) (-.f64 phi1 phi2))) | |
| 29.7b | (pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2) | |
| 8.2b | (*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 7.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (+.f64 (fma.f64 (*.f64 (tan.f64 (/.f64 (*.f64 1/2 phi2) 2)) phi1) -1/2 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 (*.f64 (/.f64 (*.f64 phi1 phi1) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (cos.f64 (*.f64 1/2 phi2)))) -1/8))) 1)) (-.f64 phi1 phi2))) | |
| 43.8b | (*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1)))))) | |
| 7.1b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) 1)) (-.f64 phi1 phi2))) | |
| 27.9b | (-.f64 (*.f64 R phi2) (*.f64 phi1 R)) | |
| 3.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2))) | |
| 4.4b | (pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3) | |
| 52.3b | (pow.f64 (pow.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3) 1/3) |
Compiled 6596 to 4181 computations (36.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.1b | (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)) |
| ✓ | 0.5b | (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3) |
| ✓ | 0.5b | (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| 3.2b | (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) |
3 calls:
| 366.0ms | (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3) |
| 349.0ms | (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
| 22.0ms | (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)) |
| 1× | batch-egg-rewrite |
| 923× | prod-diff_binary64 |
| 143× | add-sqr-sqrt_binary64 |
| 141× | log1p-expm1-u_binary64 |
| 141× | expm1-log1p-u_binary64 |
| 135× | add-log-exp_binary64 |
3 calls:
| 62.0ms | (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3)) |
| 62.0ms | (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 3) |
| 62.0ms | (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 35 |
| 1 | 292 | 35 |
| 2 | 3577 | 35 |
| 3 | 5257 | 35 |
| 1× | egg-herbie |
| 777× | cancel-sign-sub-inv_binary64 |
| 601× | fma-neg_binary64 |
| 301× | neg-sub0_binary64 |
| 300× | neg-mul-1_binary64 |
| 260× | distribute-rgt-neg-in_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 191 | 2252 |
| 1 | 623 | 2236 |
| 2 | 2233 | 2094 |
| 3 | 4299 | 2088 |
| 4 | 4994 | 2088 |
17 alts after pruning (17 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 153 | 2 | 155 |
| Fresh | 1 | 15 | 16 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 155 | 17 | 172 |
| Status | Error | Program |
| 27.6b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cos.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cos.f64 1) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sin.f64 1)))) (-.f64 phi1 phi2))) | |
| 3.6b | (*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2)) | |
| 7.1b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) 1)) (-.f64 phi1 phi2))) | |
| 3.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) 3)) (-.f64 phi1 phi2))) | |
| 27.9b | (-.f64 (*.f64 R phi2) (*.f64 phi1 R)) | |
| 3.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3) 3)) (-.f64 phi1 phi2))) | |
| 23.2b | (expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 37.3b | (*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2))) | |
| 4.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3)) 1)) (-.f64 phi1 phi2))) | |
| 29.7b | (pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2) | |
| 8.2b | (*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 4.4b | (*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3)) | |
| 7.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (+.f64 (fma.f64 (*.f64 (tan.f64 (/.f64 (*.f64 1/2 phi2) 2)) phi1) -1/2 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 (*.f64 (/.f64 (*.f64 phi1 phi1) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (cos.f64 (*.f64 1/2 phi2)))) -1/8))) 1)) (-.f64 phi1 phi2))) | |
| 43.8b | (*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1)))))) | |
| ▶ | 3.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2))) |
| 4.4b | (pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3) | |
| 52.3b | (pow.f64 (pow.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3) 1/3) |
Compiled 5731 to 3582 computations (37.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.5b | (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1) |
| 0.5b | (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) | |
| ✓ | 0.5b | (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) |
| 3.2b | (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) |
2 calls:
| 714.0ms | (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) |
| 706.0ms | (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1) |
| 1× | batch-egg-rewrite |
| 643× | prod-diff_binary64 |
| 444× | fma-udef_binary64 |
| 339× | fma-def_binary64 |
| 246× | fma-neg_binary64 |
| 196× | expm1-udef_binary64 |
2 calls:
| 115.0ms | (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1) |
| 115.0ms | (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 12 | 59 |
| 1 | 262 | 21 |
| 2 | 2810 | 21 |
| 3 | 4762 | 21 |
| 4 | 4779 | 21 |
| 5 | 4943 | 21 |
| 1× | egg-herbie |
| 570× | cancel-sign-sub-inv_binary64 |
| 563× | associate-*l*_binary64 |
| 449× | fma-neg_binary64 |
| 440× | associate-*r*_binary64 |
| 437× | distribute-rgt-neg-in_binary64 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 56 | 812 |
| 1 | 161 | 804 |
| 2 | 458 | 778 |
| 3 | 1308 | 736 |
| 4 | 3458 | 728 |
| 5 | 4545 | 728 |
| 6 | 4995 | 728 |
| 7 | 4999 | 728 |
| 8 | 4959 | 728 |
19 alts after pruning (19 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 264 | 4 | 268 |
| Fresh | 1 | 15 | 16 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 266 | 19 | 285 |
| Status | Error | Program |
| 27.6b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (cos.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cos.f64 1) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sin.f64 1)))) (-.f64 phi1 phi2))) | |
| 3.6b | (*.f64 R (pow.f64 (sqrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 2)) | |
| 7.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2))) | |
| 7.1b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) 1)) (-.f64 phi1 phi2))) | |
| 3.5b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) 3)) (-.f64 phi1 phi2))) | |
| 18.8b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 1/3) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2))) | |
| 37.3b | (*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (pow.f64 lambda1 3) (pow.f64 lambda2 3)) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (fma.f64 lambda1 lambda1 (*.f64 lambda2 (+.f64 lambda1 lambda2)))) (-.f64 phi1 phi2))) | |
| 23.2b | (expm1.f64 (log1p.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 4.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) 3)) 1)) (-.f64 phi1 phi2))) | |
| 29.7b | (pow.f64 (sqrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 2) | |
| 8.2b | (*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))))) | |
| 4.4b | (*.f64 R (pow.f64 (cbrt.f64 (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3)) | |
| 7.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (exp.f64 (+.f64 (fma.f64 (*.f64 (tan.f64 (/.f64 (*.f64 1/2 phi2) 2)) phi1) -1/2 (log1p.f64 (cos.f64 (*.f64 1/2 phi2)))) (*.f64 (*.f64 (/.f64 (*.f64 phi1 phi1) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) (+.f64 (cos.f64 (*.f64 1/2 phi2)) 1)) (cos.f64 (*.f64 1/2 phi2)))) -1/8))) 1)) (-.f64 phi1 phi2))) | |
| 43.8b | (*.f64 R (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda2) (+.f64 (*.f64 phi1 phi1) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda1 lambda1)))) (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 lambda2 lambda1)))))) | |
| 27.9b | (-.f64 (*.f64 R phi2) (*.f64 phi1 R)) | |
| 7.0b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))) (pow.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) 2) 1) 1)) (-.f64 phi1 phi2))) | |
| 7.1b | (*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (fma.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))) 2) 1) 1)) (-.f64 phi1 phi2))) | |
| 4.4b | (pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3) | |
| 52.3b | (pow.f64 (pow.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2))) 3) 1/3) |
Compiled 10450 to 6688 computations (36% saved)
Total 0.3b remaining (7.6%)
Threshold costs 0.3b (7.6%)
Compiled 71640 to 50384 computations (29.7% saved)
| 1× | egg-herbie |
| 5× | +-commutative_binary64 |
| 4× | *-commutative_binary64 |
| 4× | sub-neg_binary64 |
| 2× | neg-sub0_binary64 |
| 2× | neg-mul-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 18 | 28 |
| 1 | 26 | 28 |
| 2 | 33 | 28 |
| 3 | 37 | 28 |
| 4 | 39 | 28 |
| 5 | 38 | 28 |
(sort phi1 phi2)
(sort lambda1 lambda2)
Compiled 716 to 521 computations (27.2% saved)
Loading profile data...