Time bar (total: 12.4s)
| 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.4s | 1589× | body | 1024 | valid |
| 1.2s | 5279× | body | 128 | valid |
| 1.1s | 1358× | body | 1024 | invalid |
| 489.0ms | 775× | body | 512 | valid |
| 399.0ms | 658× | body | 512 | invalid |
| 315.0ms | 72× | body | 4096 | valid |
| 299.0ms | 1344× | body | 128 | invalid |
| 257.0ms | 176× | body | 2048 | valid |
| 164.0ms | 364× | body | 256 | valid |
| 136.0ms | 334× | body | 256 | invalid |
| 11.0ms | 1× | body | 8192 | valid |
Compiled 80 to 65 computations (18.8% saved)
| 1× | egg-herbie |
| 387× | unsub-neg_binary64 |
| 380× | neg-sub0_binary64 |
| 373× | neg-mul-1_binary64 |
| 358× | *-commutative_binary64 |
| 328× | fma-neg_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 37 |
| 1 | 37 | 37 |
| 2 | 84 | 37 |
| 3 | 224 | 37 |
| 4 | 803 | 37 |
| 5 | 2061 | 37 |
| 6 | 3861 | 37 |
| 7 | 5076 | 37 |
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 1 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 1 | 2 | 3 |
| Status | Error | Program |
| ▶ | 33.4b | (*.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 101 to 78 computations (22.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.3b | (*.f64 (PI.f64) (/.f64 angle 180)) |
| ✓ | 10.9b | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
| ✓ | 24.1b | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
| ✓ | 24.5b | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
4 calls:
| 57.0ms | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.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))) |
| 3.0ms | (*.f64 (PI.f64) (/.f64 angle 180)) |
| 2× | batch-egg-rewrite |
| 751× | prod-diff_binary64 |
| 168× | add-sqr-sqrt_binary64 |
| 161× | log1p-expm1-u_binary64 |
| 161× | expm1-log1p-u_binary64 |
| 157× | add-log-exp_binary64 |
4 calls:
| 69.0ms | (*.f64 (PI.f64) (/.f64 angle 180)) |
| 69.0ms | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) |
| 69.0ms | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
| 69.0ms | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 53 |
| 1 | 343 | 53 |
| 2 | 3966 | 53 |
| 3 | 5253 | 53 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 782× | fma-def_binary64 |
| 482× | cancel-sign-sub-inv_binary64 |
| 481× | *-commutative_binary64 |
| 441× | sub-neg_binary64 |
| 258× | unswap-sqr_binary64 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 119 | 1902 |
| 1 | 353 | 1582 |
| 2 | 1368 | 1540 |
| 3 | 4183 | 1540 |
| 4 | 4855 | 1540 |
| 5 | 4957 | 1540 |
36 alts after pruning (36 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 88 | 36 | 124 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 89 | 36 | 125 |
| Status | Error | Program |
| 54.5b | (*.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 180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 50.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 1)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.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 1/180 (*.f64 angle (PI.f64))))) | |
| 45.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 48.6b | (*.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 180))) 2))) | |
| 47.5b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 37.2b | (*.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 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (/.f64 angle 180) 3))))) | |
| 43.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 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) | |
| 33.6b | (*.f64 (-.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (*.f64 2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| ▶ | 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) |
| 33.4b | (*.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 180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))) | |
| 48.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 49.4b | (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) 1) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 36.9b | (*.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 180)) 3)))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 36.5b | (*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 37.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 44.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 48.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (sqrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.6b | (*.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.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1) | |
| 47.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.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)))) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 1)) | |
| 43.6b | (*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.9b | (*.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 180))) 2))) | |
| 37.6b | (*.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 180)))))) | |
| 34.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 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) | |
| 43.5b | (*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 53.2b | (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 54.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 38.7b | (*.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)))) | |
| 33.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 (*.f64 (PI.f64) angle) 180))) |
Compiled 5773 to 4343 computations (24.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.7b | (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) |
| 10.9b | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 24.1b | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) | |
| 24.5b | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
1 calls:
| 8.0ms | (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) |
| 2× | batch-egg-rewrite |
| 443× | log-prod_binary64 |
| 425× | prod-diff_binary64 |
| 180× | fma-def_binary64 |
| 177× | expm1-udef_binary64 |
| 177× | log1p-udef_binary64 |
1 calls:
| 50.0ms | (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 15 |
| 1 | 208 | 12 |
| 2 | 2413 | 12 |
| 3 | 4901 | 12 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 799× | distribute-rgt-neg-in_binary64 |
| 705× | fma-def_binary64 |
| 665× | distribute-lft-neg-in_binary64 |
| 561× | cancel-sign-sub-inv_binary64 |
| 427× | fma-neg_binary64 |
Useful iterations: 5 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 36 | 222 |
| 1 | 98 | 218 |
| 2 | 290 | 212 |
| 3 | 1323 | 202 |
| 4 | 3489 | 202 |
| 5 | 4863 | 196 |
| 6 | 5086 | 196 |
37 alts after pruning (37 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 127 | 9 | 136 |
| Fresh | 7 | 28 | 35 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 135 | 37 | 172 |
| Status | Error | Program |
| 54.5b | (*.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 180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 50.5b | (*.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 180))))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 33.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 1/180 (*.f64 angle (PI.f64))))) | |
| 48.6b | (*.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 180))) 2))) | |
| 47.5b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (fma.f64 (cbrt.f64 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (pow.f64 (cbrt.f64 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2) 1))) | |
| 37.2b | (*.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 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (/.f64 angle 180) 3))))) | |
| 43.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 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) | |
| 33.6b | (*.f64 (-.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (*.f64 2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| ▶ | 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) |
| 48.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 49.4b | (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) 1) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 36.9b | (*.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 180)) 3)))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) | |
| 37.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 44.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 48.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (sqrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.6b | (*.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.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1) | |
| 33.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 47.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 43.6b | (*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.9b | (*.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 180))) 2))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 37.6b | (*.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 180)))))) | |
| 34.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 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) | |
| 43.5b | (*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 53.2b | (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3))))) | |
| 54.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 38.7b | (*.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)))) | |
| 33.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 (*.f64 (PI.f64) angle) 180))) | |
| 45.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.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)))) |
Compiled 7031 to 5450 computations (22.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.9b | (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3) |
| 10.9b | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 24.1b | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) | |
| 24.5b | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
1 calls:
| 18.0ms | (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3) |
| 2× | batch-egg-rewrite |
| 875× | log1p-expm1-u_binary64 |
| 875× | expm1-log1p-u_binary64 |
| 298× | prod-diff_binary64 |
| 101× | add-sqr-sqrt_binary64 |
| 95× | add-log-exp_binary64 |
1 calls:
| 44.0ms | (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 15 |
| 1 | 209 | 15 |
| 2 | 2315 | 15 |
| 3 | 5796 | 15 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 648× | fma-neg_binary64 |
| 550× | distribute-rgt-neg-in_binary64 |
| 534× | distribute-lft-neg-in_binary64 |
| 490× | associate-*r*_binary64 |
| 483× | associate-*l*_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 44 | 312 |
| 1 | 126 | 272 |
| 2 | 408 | 248 |
| 3 | 2143 | 244 |
| 4 | 4980 | 244 |
| 5 | 4994 | 244 |
41 alts after pruning (41 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 104 | 8 | 112 |
| Fresh | 3 | 33 | 36 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 108 | 41 | 149 |
| Status | Error | Program |
| 54.5b | (*.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 180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 50.5b | (*.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 180))))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 33.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 1/180 (*.f64 angle (PI.f64))))) | |
| 48.6b | (*.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 180))) 2))) | |
| 47.5b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (fma.f64 (cbrt.f64 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (pow.f64 (cbrt.f64 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2) 1))) | |
| 37.2b | (*.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 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (/.f64 angle 180) 3))))) | |
| 43.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 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) | |
| 33.6b | (*.f64 (-.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (*.f64 2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3) (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))))) | |
| 48.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 49.4b | (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) 1) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) | |
| 33.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2) 3) (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) | |
| 36.9b | (*.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 180)) 3)))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) | |
| 37.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 44.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 48.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (sqrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.6b | (*.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.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 3)))) | |
| 33.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 47.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.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)))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) 3)))) | |
| 43.6b | (*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) | |
| 33.9b | (*.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 180))) 2))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) | |
| 37.6b | (*.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 180)))))) | |
| 34.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 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) | |
| 43.5b | (*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 53.2b | (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 54.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.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 (*.f64 (PI.f64) angle) 180))) | |
| 45.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| ▶ | 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3))) 1)))) |
| 38.7b | (*.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)))) |
Compiled 6680 to 5228 computations (21.7% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.9b | (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3) | |
| 10.9b | (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 24.1b | (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) | |
| 24.5b | (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) |
43 alts after pruning (43 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 106 | 6 | 112 |
| Fresh | 3 | 37 | 40 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 110 | 43 | 153 |
| Status | Error | Program |
| 54.5b | (*.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 180)))) 1))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (log.f64 (cbrt.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3))) 1)))) | |
| 33.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 3))) 1)))) | |
| 50.5b | (*.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 180))))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 47.5b | (*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 3))) 1)))) | |
| 33.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (fma.f64 (cbrt.f64 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (pow.f64 (cbrt.f64 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2) 1))) | |
| 37.2b | (*.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 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (/.f64 angle 180) 3))))) | |
| 43.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 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) | |
| 33.6b | (*.f64 (-.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (*.f64 2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3) (pow.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))))) | |
| 48.3b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 49.4b | (*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) 1) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) | |
| 33.8b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2) 3) (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) | |
| 36.9b | (*.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 180)) 3)))) | |
| 45.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (log.f64 (cbrt.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3))) 1)))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) | |
| 37.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 44.7b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 48.1b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (sqrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.6b | (*.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.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1) | |
| 33.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 47.5b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.4b | (*.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)))) | |
| 33.9b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) 3)))) | |
| 43.6b | (*.f64 (*.f64 -2 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 a a))) (log.f64 (cbrt.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3))) 1)))) | |
| 33.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) | |
| 33.9b | (*.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 180))) 2))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 46.2b | (*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 33.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) | |
| 37.6b | (*.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 180)))))) | |
| 34.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 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) | |
| 43.5b | (*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.7b | (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (log.f64 (cbrt.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3))) 1)))) | |
| 53.2b | (*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 54.4b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3) 1/3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) | |
| 33.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 (*.f64 (PI.f64) angle) 180))) | |
| 45.6b | (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) | |
| 48.6b | (*.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 180))) 2))) | |
| 38.7b | (*.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)))) |
Compiled 5948 to 4711 computations (20.8% saved)
Total 3.2b remaining (10.2%)
Threshold costs 0b (0%)
Compiled 47321 to 38678 computations (18.3% saved)
| 1× | egg-herbie |
| 5× | *-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 | 19 | 37 |
| 1 | 25 | 37 |
| 2 | 30 | 37 |
| 3 | 32 | 37 |
| 4 | 33 | 37 |
| 5 | 33 | 37 |
Compiled 1432 to 1177 computations (17.8% saved)
Loading profile data...