Time bar (total: 9.9s)
| 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.0s | 8256× | body | 128 | valid |
Compiled 102 to 74 computations (27.5% saved)
| 2× | egg-herbie |
| 470× | associate--r+_binary32 |
| 333× | distribute-neg-in_binary32 |
| 293× | associate-*l*_binary32 |
| 285× | associate-*r*_binary32 |
| 247× | cancel-sign-sub-inv_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 43 | 156 |
| 1 | 127 | 140 |
| 2 | 449 | 140 |
| 3 | 2073 | 132 |
| 0 | 3 | 3 |
| 1× | saturated |
| 1× | node limit |
Compiled 28 to 20 computations (28.6% saved)
| 1× | egg-herbie |
| 674× | fma-neg_binary32 |
| 316× | distribute-rgt-in_binary32 |
| 280× | unsub-neg_binary32 |
| 279× | distribute-lft-in_binary32 |
| 275× | distribute-neg-in_binary32 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 39 |
| 1 | 41 | 35 |
| 2 | 128 | 35 |
| 3 | 564 | 33 |
| 4 | 2968 | 33 |
| 1× | node limit |
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.2b | (*.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.3b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (fma.f32 (-.f32 (fma.f32 ux maxCos 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 | (*.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)))))) |
| ✓ | 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) |
| ✓ | 0.4b | (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))) |
| ✓ | 13.0b | (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))) |
24 calls:
| 31.0ms | (*.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)))))) | ux | 0 |
| 20.0ms | (*.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)))))) | uy | inf |
| 18.0ms | (*.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)))))) | uy | -inf |
| 18.0ms | (*.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)))))) | maxCos | -inf |
| 18.0ms | (*.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)))))) | maxCos | 0 |
| 2× | batch-egg-rewrite |
| 192× | add-sqr-sqrt_binary32 |
| 187× | *-un-lft-identity_binary32 |
| 187× | pow1_binary32 |
| 177× | add-cbrt-cube_binary32 |
| 177× | add-exp-log_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 67 |
| 1 | 371 | 61 |
| 0 | 17 | 94 |
| 1× | saturated |
| 1× | node limit |
| 1× | egg-herbie |
| 410× | fma-neg_binary32 |
| 377× | sub-neg_binary32 |
| 318× | fma-def_binary32 |
| 269× | associate-*r*_binary32 |
| 250× | associate-*l*_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 289 | 6589 |
| 1 | 1050 | 5816 |
| 2 | 4392 | 5810 |
| 1× | node limit |
10 alts after pruning (10 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 171 | 10 | 181 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 173 | 10 | 183 |
| Status | Error | Program |
| 1.8b | (-.f32 (*.f32 (+.f32 (*.f32 (*.f32 2/3 (pow.f32 (PI.f32) 4)) (pow.f32 uy 4)) 1) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) (*.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux))))) (+.f32 (*.f32 (*.f32 2 (pow.f32 (PI.f32) 2)) (*.f32 uy uy)) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)))))) | |
| 13.2b | (*.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))))) | |
| 1.8b | (-.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.3b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) |
| 1.0b | (-.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))))) | |
| 13.2b | (log.f32 (pow.f32 (exp.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2))))) | |
| 7.7b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux))) | |
| 12.7b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (-.f32 (fma.f32 ux ux (fma.f32 (*.f32 2 maxCos) ux 1)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)))))) | |
| 13.2b | (cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)) 3/2))) | |
| 1.0b | (fma.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 (*.f32 ux ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (-.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))) |
Compiled 10524 to 7048 computations (33% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.1b | (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) |
| ✓ | 0.1b | (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux))))) |
| ✓ | 0.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) |
18 calls:
| 32.0ms | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | ux | 0 |
| 18.0ms | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | maxCos | -inf |
| 18.0ms | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | uy | -inf |
| 18.0ms | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | maxCos | inf |
| 17.0ms | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | maxCos | 0 |
| 2× | batch-egg-rewrite |
| 224× | add-sqr-sqrt_binary32 |
| 219× | *-un-lft-identity_binary32 |
| 219× | pow1_binary32 |
| 205× | add-cbrt-cube_binary32 |
| 205× | add-exp-log_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 88 |
| 1 | 441 | 88 |
| 0 | 21 | 92 |
| 1× | saturated |
| 1× | node limit |
| 1× | egg-herbie |
| 562× | fma-def_binary32 |
| 414× | associate-*r*_binary32 |
| 301× | associate-*l*_binary32 |
| 230× | times-frac_binary32 |
| 202× | associate--l+_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 426 | 7926 |
| 1 | 1601 | 7037 |
| 1× | node limit |
12 alts after pruning (12 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 157 | 12 | 169 |
| Fresh | 9 | 0 | 9 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 167 | 12 | 179 |
| Status | Error | Program |
| 0.8b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))) 3)) | |
| 1.0b | (*.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)))) (sqrt.f32 (*.f32 ux (-.f32 2 ux)))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))))))) | |
| 0.3b | (*.f32 (cos.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| 0.5b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 2) (pow.f32 (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1))) 2))) (sqrt.f32 (fma.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1))))))) | |
| 0.6b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 1/4) 2)) | |
| 1.4b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) 1/3)) | |
| 0.4b | (*.f32 (-.f32 (exp.f32 (log1p.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) 1) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| ▶ | 0.3b | (cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))) |
| 1.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))))) | |
| 0.3b | (*.f32 (cos.f32 (expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| 1.5b | (*.f32 (pow.f32 (sqrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| 0.4b | (*.f32 (pow.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 3) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) |
Compiled 13221 to 8431 computations (36.2% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.2b | (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)) |
| ✓ | 0.3b | (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) | |
| ✓ | 0.4b | (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) |
18 calls:
| 166.0ms | (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)) | ux | 0 |
| 138.0ms | (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)) | ux | -inf |
| 132.0ms | (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)) | ux | inf |
| 86.0ms | (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)) | maxCos | 0 |
| 44.0ms | (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)) | uy | -inf |
| 2× | batch-egg-rewrite |
| 233× | add-sqr-sqrt_binary32 |
| 227× | pow1_binary32 |
| 225× | *-un-lft-identity_binary32 |
| 216× | add-log-exp_binary32 |
| 216× | log1p-expm1-u_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 96 |
| 1 | 479 | 96 |
| 0 | 23 | 96 |
| 1× | saturated |
| 1× | node limit |
| 1× | egg-herbie |
| 459× | *-commutative_binary32 |
| 403× | times-frac_binary32 |
| 305× | +-commutative_binary32 |
| 286× | fma-def_binary32 |
| 250× | associate-+r+_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1051 | 19289 |
| 1 | 3767 | 18809 |
| 1× | node limit |
11 alts after pruning (11 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 164 | 4 | 168 |
| Fresh | 4 | 7 | 11 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 169 | 11 | 180 |
| Status | Error | Program |
| 0.8b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))) 3)) | |
| 1.0b | (*.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)))) (sqrt.f32 (*.f32 ux (-.f32 2 ux)))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))))))) | |
| 0.3b | (cbrt.f32 (*.f32 (pow.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))) | |
| 0.3b | (*.f32 (cos.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| ▶ | 0.3b | (cbrt.f32 (*.f32 (log1p.f32 (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))) |
| 1.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))))) | |
| 8.3b | (cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (exp.f32 3/2) (+.f32 (log.f32 (+.f32 2 (*.f32 -2 maxCos))) (log.f32 ux))))) | |
| 0.6b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 1/4) 2)) | |
| 1.4b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) 1/3)) | |
| 0.4b | (*.f32 (-.f32 (exp.f32 (log1p.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) 1) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| 0.4b | (cbrt.f32 (*.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) 1) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))) |
Compiled 28369 to 20277 computations (28.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.3b | (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) | |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) | |
| 0.4b | (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) | |
| ✓ | 0.7b | (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) |
3 calls:
| 5.0ms | (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) | uy | 0 |
| 4.0ms | (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) | uy | -inf |
| 4.0ms | (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) | uy | inf |
| 2× | batch-egg-rewrite |
| 798× | log1p-expm1-u_binary32 |
| 798× | expm1-log1p-u_binary32 |
| 96× | add-sqr-sqrt_binary32 |
| 92× | pow1_binary32 |
| 91× | *-un-lft-identity_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 15 |
| 1 | 206 | 15 |
| 2 | 2230 | 15 |
| 0 | 10 | 15 |
| 1× | saturated |
| 1× | node limit |
| 1× | egg-herbie |
| 719× | distribute-rgt-neg-in_binary32 |
| 530× | fma-neg_binary32 |
| 471× | *-commutative_binary32 |
| 284× | sub-neg_binary32 |
| 249× | distribute-lft-neg-in_binary32 |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 40 | 258 |
| 1 | 114 | 248 |
| 2 | 351 | 244 |
| 3 | 1752 | 236 |
| 4 | 4344 | 230 |
| 1× | node limit |
11 alts after pruning (10 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 133 | 0 | 133 |
| Fresh | 0 | 10 | 10 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 133 | 11 | 144 |
| Status | Error | Program |
| 0.8b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))) 3)) | |
| 1.0b | (*.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)))) (sqrt.f32 (*.f32 ux (-.f32 2 ux)))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))))))) | |
| 0.3b | (cbrt.f32 (*.f32 (pow.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))) | |
| 0.3b | (*.f32 (cos.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| ✓ | 0.3b | (cbrt.f32 (*.f32 (log1p.f32 (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))) |
| 1.1b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))))) | |
| 8.3b | (cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (exp.f32 3/2) (+.f32 (log.f32 (+.f32 2 (*.f32 -2 maxCos))) (log.f32 ux))))) | |
| 0.6b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 1/4) 2)) | |
| 1.4b | (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) 1/3)) | |
| 0.4b | (*.f32 (-.f32 (exp.f32 (log1p.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) 1) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 2 (*.f32 maxCos ux)) (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)))))) | |
| 0.4b | (cbrt.f32 (*.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) 1) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))) |
Compiled 11364 to 7844 computations (31% saved)
Total 0.2b remaining (71.6%)
Threshold costs 0.2b (71.6%)
Compiled 81771 to 58737 computations (28.2% saved)
| 1× | egg-herbie |
| 7× | *-commutative_binary32 |
| 2× | +-commutative_binary32 |
| 2× | sub-neg_binary32 |
| 1× | neg-sub0_binary32 |
| 1× | neg-mul-1_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 24 | 51 |
| 1 | 34 | 51 |
| 2 | 38 | 51 |
| 3 | 40 | 51 |
| 4 | 41 | 51 |
| 1× | saturated |
| 1× | fuel |
Compiled 480 to 333 computations (30.6% saved)
Loading profile data...