Time bar (total: 11.3s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 0.1% | 99.9% | 0 |
| 0% | 0.1% | 99.9% | 1 |
| 0% | 0.1% | 99.9% | 2 |
| 0% | 0.1% | 99.9% | 3 |
| 0% | 0% | 99.9% | 4 |
| 0% | 0% | 99.9% | 5 |
| 0% | 0% | 99.9% | 6 |
| 0.1% | 0% | 99.9% | 7 |
| 0.1% | 0% | 99.9% | 8 |
| 0.1% | 0% | 99.9% | 9 |
| 0.1% | 0% | 99.9% | 10 |
| 0.1% | 0% | 99.9% | 11 |
| 0.1% | 0% | 99.9% | 12 |
| 0.1% | 0% | 99.9% | 13 |
| 0.1% | 0% | 99.9% | 14 |
Compiled 51 to 37 computations (27.5% saved)
| 2.5s | 8256× | body | 128 | valid |
Compiled 130 to 94 computations (27.7% saved)
| 1× | egg-herbie |
| 743× | sub-neg_binary32 |
| 674× | fma-neg_binary32 |
| 386× | associate--l-_binary32 |
| 316× | distribute-rgt-in_binary32 |
| 286× | unsub-neg_binary32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 39 |
| 1 | 41 | 35 |
| 2 | 117 | 35 |
| 3 | 431 | 33 |
| 4 | 1755 | 33 |
| 5 | 4135 | 33 |
| 6 | 4966 | 33 |
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 |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))))) | |
| ▶ | 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) |
Compiled 156 to 110 computations (29.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.1b | (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)) |
| ✓ | 0.2b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) |
| ✓ | 0.4b | (*.f32 (*.f32 uy 2) (PI.f32)) |
| ✓ | 13.7b | (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1) |
4 calls:
| 147.0ms | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) |
| 97.0ms | (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)) |
| 13.0ms | (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1) |
| 3.0ms | (*.f32 (*.f32 uy 2) (PI.f32)) |
| 2× | batch-egg-rewrite |
| 316× | expm1-udef_binary32 |
| 315× | log1p-udef_binary32 |
| 177× | add-sqr-sqrt_binary32 |
| 166× | log1p-expm1-u_binary32 |
| 166× | expm1-log1p-u_binary32 |
4 calls:
| 72.0ms | (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)) |
| 72.0ms | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) |
| 72.0ms | (*.f32 (*.f32 uy 2) (PI.f32)) |
| 72.0ms | (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 81 |
| 1 | 353 | 81 |
| 2 | 4246 | 81 |
| 3 | 5106 | 81 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 561× | fma-def_binary32 |
| 414× | associate-*r*_binary32 |
| 293× | associate-*l*_binary32 |
| 230× | times-frac_binary32 |
| 205× | associate--r+_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 425 | 8582 |
| 1 | 1502 | 7608 |
| 2 | 5183 | 7608 |
9 alts after pruning (9 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 180 | 9 | 189 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 182 | 9 | 191 |
| Status | Error | Program |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) 3)) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (expm1.f32 (log1p.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))) | |
| 5.5b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (+.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (fma.f32 1/2 (*.f32 (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5)))) (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))))))))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (fma.f32 1/2 (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))))))))))) | |
| 5.0b | (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) | |
| 1.2b | (-.f32 (+.f32 (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) (*.f32 2/3 (*.f32 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (+.f32 (*.f32 4/45 (*.f32 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))) (*.f32 2 (*.f32 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 uy 2)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))))) | |
| ▶ | 0.9b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux)))))))) |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (*.f32 1/2 (log1p.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))))))) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (/.f32 (+.f32 (pow.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 3) 1) (+.f32 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)))) (-.f32 1 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))))) | |
| 13.1b | (-.f32 (exp.f32 (log1p.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))) 1) |
Compiled 13544 to 9065 computations (33.1% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.5b | (pow.f32 (*.f32 ux (-.f32 2 ux)) 3) |
| ✓ | 0.7b | (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) |
| ✓ | 1.0b | (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux)))))) |
| ✓ | 1.8b | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) |
4 calls:
| 149.0ms | (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux)))))) |
| 83.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) |
| 35.0ms | (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) |
| 4.0ms | (pow.f32 (*.f32 ux (-.f32 2 ux)) 3) |
| 2× | batch-egg-rewrite |
| 282× | log1p-expm1-u_binary32 |
| 282× | expm1-log1p-u_binary32 |
| 274× | add-cbrt-cube_binary32 |
| 273× | add-log-exp_binary32 |
| 272× | add-exp-log_binary32 |
4 calls:
| 66.0ms | (pow.f32 (*.f32 ux (-.f32 2 ux)) 3) |
| 66.0ms | (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) |
| 66.0ms | (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux)))))) |
| 66.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 127 |
| 1 | 624 | 109 |
| 2 | 5064 | 109 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 721× | associate-/r*_binary32 |
| 515× | associate-/l*_binary32 |
| 321× | cancel-sign-sub-inv_binary32 |
| 224× | fma-neg_binary32 |
| 184× | sub-neg_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 173 | 3105 |
| 1 | 551 | 2953 |
| 2 | 2106 | 2750 |
| 3 | 5581 | 2750 |
9 alts after pruning (8 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 161 | 0 | 161 |
| Fresh | 0 | 8 | 8 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 161 | 9 | 170 |
| Status | Error | Program |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) 3)) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (expm1.f32 (log1p.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))) | |
| 5.5b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (+.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (fma.f32 1/2 (*.f32 (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5)))) (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))))))))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (fma.f32 1/2 (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))))))))))) | |
| 5.0b | (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) | |
| ▶ | 1.2b | (-.f32 (+.f32 (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) (*.f32 2/3 (*.f32 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (+.f32 (*.f32 4/45 (*.f32 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))) (*.f32 2 (*.f32 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 uy 2)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))))) |
| ✓ | 0.9b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux)))))))) |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (*.f32 1/2 (log1p.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))))))) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (/.f32 (+.f32 (pow.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 3) 1) (+.f32 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)))) (-.f32 1 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))))) | |
| 13.1b | (-.f32 (exp.f32 (log1p.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))) 1) |
Compiled 18092 to 11515 computations (36.4% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 1.0b | (pow.f32 (PI.f32) 2) |
| ✓ | 1.2b | (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) |
| ✓ | 1.6b | (pow.f32 (PI.f32) 6) |
| ✓ | 1.6b | (pow.f32 (PI.f32) 4) |
4 calls:
| 14.0ms | (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) |
| 0.0ms | (pow.f32 (PI.f32) 4) |
| 0.0ms | (pow.f32 (PI.f32) 2) |
| 0.0ms | (pow.f32 (PI.f32) 6) |
| 2× | batch-egg-rewrite |
| 785× | log1p-expm1-u_binary32 |
| 785× | expm1-log1p-u_binary32 |
| 162× | log1p-udef_binary32 |
| 97× | add-sqr-sqrt_binary32 |
| 97× | add-cbrt-cube_binary32 |
4 calls:
| 48.0ms | (pow.f32 (PI.f32) 2) |
| 48.0ms | (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) |
| 48.0ms | (pow.f32 (PI.f32) 6) |
| 48.0ms | (pow.f32 (PI.f32) 4) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 23 |
| 1 | 233 | 23 |
| 2 | 2073 | 23 |
| 3 | 4889 | 23 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 2552× | unswap-sqr_binary32 |
| 711× | sqr-pow_binary32 |
| 491× | *-commutative_binary32 |
| 387× | cube-prod_binary32 |
| 375× | fabs-mul_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 132 |
| 1 | 15 | 132 |
| 2 | 40 | 132 |
| 3 | 160 | 132 |
| 4 | 755 | 132 |
| 5 | 1095 | 132 |
| 6 | 1155 | 132 |
| 7 | 1253 | 132 |
| 8 | 1389 | 132 |
| 9 | 1528 | 132 |
| 10 | 1700 | 132 |
| 11 | 1772 | 132 |
| 12 | 1938 | 132 |
| 13 | 2163 | 132 |
| 14 | 2489 | 132 |
| 15 | 2871 | 132 |
| 16 | 3326 | 132 |
| 17 | 3449 | 132 |
| 18 | 3568 | 132 |
| 19 | 3708 | 132 |
| 20 | 3743 | 132 |
| 21 | 7926 | 132 |
9 alts after pruning (7 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 80 | 0 | 80 |
| Fresh | 0 | 7 | 7 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 80 | 9 | 89 |
| Status | Error | Program |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) 3)) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (expm1.f32 (log1p.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))) | |
| 5.5b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (+.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (fma.f32 1/2 (*.f32 (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5)))) (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))))))))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (fma.f32 1/2 (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))))))))))) | |
| ▶ | 5.0b | (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) |
| ✓ | 1.2b | (-.f32 (+.f32 (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) (*.f32 2/3 (*.f32 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (+.f32 (*.f32 4/45 (*.f32 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))) (*.f32 2 (*.f32 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 uy 2)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))))) |
| ✓ | 0.9b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux)))))))) |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (*.f32 1/2 (log1p.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))))))) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (/.f32 (+.f32 (pow.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 3) 1) (+.f32 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)))) (-.f32 1 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))))) | |
| 13.1b | (-.f32 (exp.f32 (log1p.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))) 1) |
Compiled 13627 to 9883 computations (27.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.1b | (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) |
| ✓ | 0.1b | (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) |
| ✓ | 0.2b | (*.f32 maxCos (pow.f32 ux 2)) |
| ✓ | 0.2b | (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) |
4 calls:
| 63.0ms | (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) |
| 10.0ms | (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) |
| 9.0ms | (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) |
| 8.0ms | (*.f32 maxCos (pow.f32 ux 2)) |
| 2× | batch-egg-rewrite |
| 895× | prod-diff_binary32 |
| 192× | add-sqr-sqrt_binary32 |
| 192× | log1p-expm1-u_binary32 |
| 192× | expm1-log1p-u_binary32 |
| 181× | add-cube-cbrt_binary32 |
4 calls:
| 71.0ms | (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) |
| 71.0ms | (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) |
| 71.0ms | (*.f32 maxCos (pow.f32 ux 2)) |
| 71.0ms | (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 63 |
| 1 | 397 | 57 |
| 2 | 4652 | 57 |
| 3 | 6268 | 57 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 1× | egg-herbie |
| 377× | cancel-sign-sub-inv_binary32 |
| 369× | fma-neg_binary32 |
| 272× | sub-neg_binary32 |
| 267× | distribute-neg-in_binary32 |
| 262× | fma-def_binary32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 212 | 2720 |
| 1 | 701 | 2374 |
| 2 | 2840 | 2153 |
| 3 | 4920 | 2093 |
| 4 | 5098 | 2093 |
10 alts after pruning (8 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 105 | 3 | 108 |
| Fresh | 1 | 5 | 6 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 2 | 2 |
| Total | 107 | 10 | 117 |
| Status | Error | Program |
| 5.2b | (*.f32 (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))) 2)) (sqrt.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))) | |
| ✓ | 1.2b | (-.f32 (+.f32 (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))) (*.f32 2/3 (*.f32 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))))) (+.f32 (*.f32 4/45 (*.f32 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))) (*.f32 2 (*.f32 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 uy 2)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))))) |
| 5.5b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (+.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (fma.f32 1/2 (*.f32 (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5)))) (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))))))))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (fma.f32 1/2 (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))))))))))) | |
| 5.1b | (/.f32 (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 2) (pow.f32 (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))) 2))) (sqrt.f32 (fma.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))))) | |
| ✓ | 0.9b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3)) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))))) (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (*.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) (+.f32 (pow.f32 ux 4) (*.f32 ux ux)))))))) |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (*.f32 1/2 (log1p.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))))))) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))) 3)) | |
| 13.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (/.f32 (+.f32 (pow.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 3) 1) (+.f32 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)))) (-.f32 1 (*.f32 (*.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))))) | |
| 13.1b | (-.f32 (exp.f32 (log1p.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1))))) 1) | |
| 5.6b | (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2) 1/3) |
Compiled 6183 to 4003 computations (35.3% saved)
Total 0.1b remaining (29.3%)
Threshold costs 0.1b (29.3%)
Compiled 112662 to 79421 computations (29.5% saved)
| 1× | egg-herbie |
| 18× | *-commutative_binary32 |
| 13× | +-commutative_binary32 |
| 10× | sub-neg_binary32 |
| 9× | neg-sub0_binary32 |
| 9× | neg-mul-1_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 57 |
| 1 | 37 | 57 |
| 2 | 46 | 57 |
| 3 | 58 | 57 |
| 4 | 81 | 57 |
| 5 | 97 | 57 |
| 6 | 107 | 57 |
| 7 | 113 | 57 |
| 8 | 115 | 57 |
| 9 | 114 | 57 |
Compiled 856 to 599 computations (30% saved)
Loading profile data...