Time bar (total: 18.6s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 0% | 100% | 0 |
| 0% | 0% | 100% | 1 |
Compiled 118 to 85 computations (28% saved)
| 4.6s | 8256× | body | 128 | valid |
Compiled 307 to 220 computations (28.3% saved)
| 1× | egg-herbie |
| 929× | unsub-neg_binary32 |
| 384× | associate--l-_binary32 |
| 362× | distribute-rgt-in_binary32 |
| 356× | distribute-neg-in_binary32 |
| 347× | distribute-rgt-neg-in_binary32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 27 | 99 |
| 1 | 67 | 97 |
| 2 | 204 | 70 |
| 3 | 683 | 66 |
| 4 | 1864 | 66 |
| 5 | 2617 | 66 |
| 6 | 4625 | 66 |
| 7 | 5073 | 66 |
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 |
| ▶ | 0.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) |
| 0.4b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi)) |
Compiled 354 to 242 computations (31.6% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.2b | (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) |
| ✓ | 0.2b | (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos)) |
| ✓ | 0.3b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi) |
| ✓ | 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) |
4 calls:
| 13.0ms | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi) |
| 13.0ms | (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos)) |
| 5.0ms | (*.f32 (*.f32 uy 2) (PI.f32)) |
| 3.0ms | (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) |
| 2× | batch-egg-rewrite |
| 319× | expm1-udef_binary32 |
| 318× | log1p-udef_binary32 |
| 178× | add-sqr-sqrt_binary32 |
| 167× | log1p-expm1-u_binary32 |
| 167× | expm1-log1p-u_binary32 |
4 calls:
| 72.0ms | (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) |
| 72.0ms | (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos)) |
| 72.0ms | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi) |
| 72.0ms | (*.f32 (*.f32 uy 2) (PI.f32)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 47 |
| 1 | 355 | 47 |
| 2 | 4345 | 47 |
| 3 | 5248 | 47 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 716× | distribute-rgt-neg-in_binary32 |
| 689× | distribute-lft-neg-in_binary32 |
| 603× | associate-*l*_binary32 |
| 508× | associate-*r*_binary32 |
| 282× | fma-def_binary32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 89 | 1188 |
| 1 | 236 | 1150 |
| 2 | 758 | 1023 |
| 3 | 3040 | 1015 |
| 4 | 4951 | 1015 |
13 alts after pruning (13 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 113 | 12 | 125 |
| Fresh | 0 | 1 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 114 | 13 | 127 |
| Status | Error | Program |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi)))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) yi)))) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 0.8b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (pow.f32 (pow.f32 (*.f32 (*.f32 uy 2) (PI.f32)) 3) 1/3)) yi)))) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7))))))))) | |
| ▶ | 0.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi)))) |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3)))) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))))) | |
| 5.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi)))) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 0.4b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi)) | |
| 6.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi)))) | |
| 4.0b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3)))))) |
Compiled 7474 to 4576 computations (38.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.3b | (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi) |
| ✓ | 0.3b | (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)) |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) | |
| ✓ | 1.0b | (pow.f32 (PI.f32) 3) |
3 calls:
| 133.0ms | (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi) |
| 11.0ms | (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)) |
| 0.0ms | (pow.f32 (PI.f32) 3) |
| 2× | batch-egg-rewrite |
| 608× | log-prod_binary32 |
| 256× | prod-diff_binary32 |
| 211× | expm1-udef_binary32 |
| 211× | log1p-udef_binary32 |
| 200× | log-pow_binary32 |
3 calls:
| 59.0ms | (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi) |
| 59.0ms | (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)) |
| 59.0ms | (pow.f32 (PI.f32) 3) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 29 |
| 1 | 264 | 29 |
| 2 | 2789 | 29 |
| 3 | 4949 | 29 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 670× | fma-neg_binary32 |
| 463× | distribute-rgt-neg-in_binary32 |
| 452× | distribute-lft-neg-in_binary32 |
| 441× | associate-*l*_binary32 |
| 409× | associate-*r*_binary32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 59 | 596 |
| 1 | 142 | 592 |
| 2 | 475 | 588 |
| 3 | 1958 | 576 |
| 4 | 4019 | 576 |
| 5 | 4914 | 576 |
| 6 | 5141 | 576 |
15 alts after pruning (14 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 90 | 3 | 93 |
| Fresh | 1 | 11 | 12 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 91 | 15 | 106 |
| Status | Error | Program |
| 5.9b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (cbrt.f32 (*.f32 (pow.f32 (pow.f32 (PI.f32) 3) 3) (pow.f32 (pow.f32 (+.f32 uy uy) 3) 3))))) yi)))) | |
| ✓ | 0.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi)))) |
| 5.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi)))) | |
| 9.0b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (PI.f32) (+.f32 uy uy)) 3))) 1))) yi)))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi)))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) yi)))) | |
| ▶ | 0.4b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi)) |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) 3) (PI.f32))))) yi)))) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7))))))))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3)))) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))))) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 6.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi)))) | |
| 4.0b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3)))))) |
Compiled 6450 to 3909 computations (39.4% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.2b | (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) | |
| ✓ | 0.2b | (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) |
| ✓ | 0.3b | (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi) |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) |
2 calls:
| 279.0ms | (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi) |
| 6.0ms | (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) |
| 2× | batch-egg-rewrite |
| 347× | log1p-udef_binary32 |
| 205× | associate-*r*_binary32 |
| 198× | add-sqr-sqrt_binary32 |
| 186× | log1p-expm1-u_binary32 |
| 186× | expm1-log1p-u_binary32 |
2 calls:
| 70.0ms | (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) |
| 70.0ms | (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 19 | 43 |
| 1 | 400 | 43 |
| 2 | 4867 | 43 |
| 3 | 5363 | 43 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 960× | times-frac_binary32 |
| 460× | associate-*r*_binary32 |
| 409× | fma-neg_binary32 |
| 341× | associate-*l*_binary32 |
| 251× | fma-def_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 296 | 4555 |
| 1 | 884 | 4125 |
| 2 | 3491 | 4121 |
| 3 | 5336 | 4121 |
16 alts after pruning (15 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 266 | 3 | 269 |
| Fresh | 1 | 12 | 13 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 268 | 16 | 284 |
| Status | Error | Program |
| 5.9b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (cbrt.f32 (*.f32 (pow.f32 (pow.f32 (PI.f32) 3) 3) (pow.f32 (pow.f32 (+.f32 uy uy) 3) 3))))) yi)))) | |
| ✓ | 0.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi)))) |
| 5.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi)))) | |
| 9.0b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (PI.f32) (+.f32 uy uy)) 3))) 1))) yi)))) | |
| ▶ | 0.4b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (-.f32 (*.f32 maxCos ux) (*.f32 maxCos (pow.f32 ux 2))) zi)) |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) 3) (PI.f32))))) yi)))) | |
| 3.2b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (neg.f32 (*.f32 maxCos (*.f32 ux ux))) zi)) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7))))))))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3)))) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi)))) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 2.1b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (-.f32 (*.f32 2 (*.f32 (*.f32 (PI.f32) (*.f32 uy yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))))) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi)) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 6.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi)))) | |
| 4.0b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3)))))) |
Compiled 22539 to 15092 computations (33% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.2b | (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) | |
| ✓ | 0.3b | (-.f32 (*.f32 maxCos ux) (*.f32 maxCos (pow.f32 ux 2))) |
| 0.3b | (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi) | |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) |
1 calls:
| 9.0ms | (-.f32 (*.f32 maxCos ux) (*.f32 maxCos (pow.f32 ux 2))) |
| 2× | batch-egg-rewrite |
| 873× | log1p-expm1-u_binary32 |
| 873× | expm1-log1p-u_binary32 |
| 90× | add-sqr-sqrt_binary32 |
| 85× | add-log-exp_binary32 |
| 84× | add-cube-cbrt_binary32 |
1 calls:
| 50.0ms | (-.f32 (*.f32 maxCos ux) (*.f32 maxCos (pow.f32 ux 2))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 10 |
| 1 | 182 | 10 |
| 2 | 2221 | 10 |
| 3 | 5266 | 10 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 1149× | difference-of-squares_binary32 |
| 1042× | unsub-neg_binary32 |
| 752× | sub-neg_binary32 |
| 527× | neg-mul-1_binary32 |
| 508× | fma-neg_binary32 |
Useful iterations: 9 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 142 |
| 1 | 34 | 142 |
| 2 | 79 | 142 |
| 3 | 181 | 142 |
| 4 | 525 | 142 |
| 5 | 1287 | 142 |
| 6 | 2641 | 142 |
| 7 | 4127 | 142 |
| 8 | 4546 | 142 |
| 9 | 4858 | 114 |
| 10 | 2901 | 114 |
| 11 | 3367 | 114 |
| 12 | 3150 | 114 |
| 13 | 4587 | 114 |
| 14 | 3855 | 114 |
| 15 | 5179 | 114 |
16 alts after pruning (14 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 274 | 1 | 275 |
| Fresh | 1 | 13 | 14 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 275 | 16 | 291 |
| Status | Error | Program |
| 3.0b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 maxCos (*.f32 ux ux)) zi)) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.f32 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7))))))))) | |
| 5.9b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (cbrt.f32 (*.f32 (pow.f32 (pow.f32 (PI.f32) 3) 3) (pow.f32 (pow.f32 (+.f32 uy uy) 3) 3))))) yi)))) | |
| ✓ | 0.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi)))) |
| 5.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi)))) | |
| 9.0b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (PI.f32) (+.f32 uy uy)) 3))) 1))) yi)))) | |
| ✓ | 0.4b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (-.f32 (*.f32 maxCos ux) (*.f32 maxCos (pow.f32 ux 2))) zi)) |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) 3) (PI.f32))))) yi)))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3)))) | |
| 1.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7))))))))) | |
| 0.5b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi)))) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 2.1b | (+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (-.f32 (*.f32 2 (*.f32 (*.f32 (PI.f32) (*.f32 uy yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))))) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi)) | |
| 0.4b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)))) | |
| 6.3b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi)))) | |
| 4.0b | (fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3)))))) |
Compiled 22823 to 14466 computations (36.6% saved)
Total 0.2b remaining (55.9%)
Threshold costs 0.2b (55.9%)
Compiled 288079 to 202171 computations (29.8% saved)
| 1× | egg-herbie |
| 14× | *-commutative_binary32 |
| 4× | +-commutative_binary32 |
| 4× | sub-neg_binary32 |
| 2× | neg-sub0_binary32 |
| 2× | neg-mul-1_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 36 | 89 |
| 1 | 54 | 89 |
| 2 | 61 | 89 |
| 3 | 65 | 89 |
| 4 | 67 | 89 |
| 5 | 66 | 89 |
Compiled 1148 to 808 computations (29.6% saved)
Loading profile data...