Time bar (total: 10.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.1s | 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 (sin.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))) | |
| ▶ | 13.1b | (*.f32 (sin.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)))))) |
Compiled 156 to 110 computations (29.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) |
| ✓ | 0.4b | (*.f32 (sin.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.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:
| 26.0ms | (*.f32 (sin.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 |
| 17.0ms | (*.f32 (sin.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 |
| 16.0ms | (*.f32 (sin.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 |
| 15.0ms | (*.f32 (sin.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 |
| 15.0ms | (*.f32 (sin.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 |
| 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 |
| 497× | fma-neg_binary32 |
| 347× | fma-def_binary32 |
| 285× | associate-*r*_binary32 |
| 268× | associate-*l*_binary32 |
| 223× | *-commutative_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 301 | 6612 |
| 1 | 1115 | 5692 |
| 2 | 4628 | 5688 |
| 1× | node limit |
16 alts after pruning (16 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 166 | 16 | 182 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 168 | 16 | 184 |
| Status | Error | Program |
| 12.0b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (log.f32 (exp.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)))))) | |
| 5.6b | (*.f32 2 (*.f32 uy (*.f32 (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)))))))) | |
| 13.2b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (/.f32 (-.f32 1 (*.f32 (neg.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)) (neg.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)))) (-.f32 1 (neg.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)))))) | |
| ▶ | 0.5b | (*.f32 (sin.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)))))) |
| 13.2b | (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2))))) 3) | |
| 13.3b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (/.f32 (+.f32 (pow.f32 (*.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux))) 3) (pow.f32 (*.f32 maxCos (*.f32 ux (fma.f32 ux maxCos (-.f32 1 ux)))) 3)) (+.f32 (*.f32 (*.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux))) (*.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux)))) (-.f32 (*.f32 (*.f32 maxCos (*.f32 ux (fma.f32 ux maxCos (-.f32 1 ux)))) (*.f32 maxCos (*.f32 ux (fma.f32 ux maxCos (-.f32 1 ux))))) (*.f32 (*.f32 (-.f32 1 ux) (fma.f32 ux maxCos (-.f32 1 ux))) (*.f32 maxCos (*.f32 ux (fma.f32 ux maxCos (-.f32 1 ux))))))))))) | |
| 1.2b | (fma.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (-.f32 (*.f32 maxCos (*.f32 ux ux)) (*.f32 maxCos ux)))) | |
| 7.7b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux))) | |
| 13.2b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (log.f32 (exp.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)))))) | |
| 14.7b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (pow.f32 (pow.f32 (cbrt.f32 (fma.f32 ux maxCos (-.f32 1 ux))) 2) 3)))) | |
| 1.6b | (-.f32 (+.f32 (*.f32 4/15 (*.f32 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (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 uy (PI.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 (*.f32 8/315 (*.f32 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)) (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 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 uy 3)) (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)))))))))) | |
| 2.3b | (fma.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 (PI.f32) (*.f32 2 uy)) (*.f32 (*.f32 4/15 (pow.f32 (PI.f32) 5)) (pow.f32 uy 5))) (*.f32 (*.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 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))) -4/3)) | |
| 1.0b | (-.f32 (fma.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))) (+.f32 (*.f32 (*.f32 maxCos maxCos) (*.f32 (pow.f32 ux 3) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))))) (*.f32 (*.f32 ux ux) (*.f32 maxCos (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))) (fma.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))) (*.f32 ux (*.f32 maxCos (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))))) (*.f32 1/2 (+.f32 (*.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy))) (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4)))) (*.f32 (*.f32 (*.f32 ux (*.f32 ux (*.f32 maxCos maxCos))) (sin.f32 (*.f32 (PI.f32) (*.f32 2 uy)))) (+.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))))))))) | |
| 13.2b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (/.f32 (+.f32 1 (pow.f32 (neg.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)) 3)) (+.f32 1 (-.f32 (*.f32 (neg.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)) (neg.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2))) (neg.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2))))))) | |
| 1.6b | (-.f32 (*.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 (PI.f32) (*.f32 2 uy)) (*.f32 (*.f32 4/15 (pow.f32 (PI.f32) 5)) (pow.f32 uy 5)))) (*.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 4/3 (pow.f32 uy 3)) (pow.f32 (PI.f32) 3)) (*.f32 (*.f32 8/315 (pow.f32 uy 7)) (pow.f32 (PI.f32) 7))))) | |
| 0.7b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux) (neg.f32 (*.f32 ux (+.f32 ux (*.f32 2 maxCos))))))) |
Compiled 11285 to 7680 computations (31.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 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.2b | (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) | |
| ✓ | 0.4b | (*.f32 (sin.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)))))) |
18 calls:
| 31.0ms | (*.f32 (sin.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 |
| 19.0ms | (*.f32 (sin.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 (sin.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 |
| 16.0ms | (*.f32 (sin.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 |
| 15.0ms | (*.f32 (sin.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 |
| 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 |
| 600× | fma-def_binary32 |
| 437× | associate-*r*_binary32 |
| 319× | associate-*l*_binary32 |
| 230× | times-frac_binary32 |
| 202× | associate--l+_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 437 | 7975 |
| 1 | 1639 | 7056 |
| 1× | node limit |
14 alts after pruning (14 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 156 | 14 | 170 |
| Fresh | 15 | 0 | 15 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 172 | 14 | 186 |
| Status | Error | Program |
| 0.6b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (*.f32 (cbrt.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))))) (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)))))))) | |
| ▶ | 0.5b | (cbrt.f32 (*.f32 (pow.f32 (sin.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))) |
| 19.2b | (log.f32 (pow.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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))))))) | |
| 1.2b | (*.f32 (sin.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)) | |
| 1.6b | (-.f32 (*.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))) (fma.f32 2 (*.f32 (PI.f32) uy) (*.f32 (pow.f32 uy 5) (*.f32 (pow.f32 (PI.f32) 5) 4/15)))) (*.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (+.f32 (*.f32 (fma.f32 maxCos maxCos 1) (*.f32 ux ux)) (*.f32 2 (*.f32 maxCos ux))))) (fma.f32 (*.f32 4/3 (pow.f32 uy 3)) (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 7) (*.f32 (pow.f32 (PI.f32) 7) 8/315))))) | |
| 0.7b | (*.f32 (sin.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)) | |
| 0.9b | (*.f32 (pow.f32 (cbrt.f32 (sin.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)))))) | |
| 1.3b | (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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))))))) 2) | |
| 0.7b | (*.f32 (sin.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)))))) | |
| 5.8b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (log.f32 (exp.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.5b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cbrt.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))) | |
| 0.5b | (*.f32 (sin.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.3b | (*.f32 (pow.f32 (sqrt.f32 (sin.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.9b | (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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) |
Compiled 13510 to 8489 computations (37.2% 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.3b | (*.f32 (pow.f32 (sin.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.8b | (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) |
18 calls:
| 137.0ms | (*.f32 (pow.f32 (sin.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 |
| 117.0ms | (*.f32 (pow.f32 (sin.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 |
| 106.0ms | (*.f32 (pow.f32 (sin.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 |
| 73.0ms | (*.f32 (pow.f32 (sin.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 |
| 51.0ms | (*.f32 (pow.f32 (sin.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 |
| 463× | *-commutative_binary32 |
| 403× | times-frac_binary32 |
| 290× | +-commutative_binary32 |
| 274× | fma-def_binary32 |
| 236× | associate-+r+_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 1045 | 19397 |
| 1 | 3732 | 18917 |
| 1× | node limit |
12 alts after pruning (12 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 168 | 2 | 170 |
| Fresh | 3 | 10 | 13 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 172 | 12 | 184 |
| Status | Error | Program |
| 19.2b | (log.f32 (pow.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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))))))) | |
| 1.2b | (*.f32 (sin.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.9b | (*.f32 (pow.f32 (cbrt.f32 (sin.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)))))) | |
| 1.3b | (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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))))))) 2) | |
| 5.8b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (log.f32 (exp.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.5b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (cbrt.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))) | |
| 2.7b | (cbrt.f32 (*.f32 (+.f32 (fma.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 208/15 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))) (*.f32 -16 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (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.7b | (*.f32 (sin.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)) | |
| ▶ | 0.5b | (*.f32 (sin.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.3b | (*.f32 (pow.f32 (sqrt.f32 (sin.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.9b | (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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) | |
| 0.7b | (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) 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))) |
Compiled 28670 to 20775 computations (27.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.2b | (log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32))) |
| ✓ | 0.2b | (expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) |
| 0.3b | (*.f32 (*.f32 uy 2) (PI.f32)) | |
| ✓ | 0.4b | (*.f32 (sin.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)))))) |
15 calls:
| 32.0ms | (*.f32 (sin.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)))))) | ux | 0 |
| 25.0ms | (*.f32 (sin.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)))))) | ux | inf |
| 21.0ms | (expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) | uy | -inf |
| 17.0ms | (*.f32 (sin.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)))))) | uy | inf |
| 16.0ms | (*.f32 (sin.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)))))) | maxCos | 0 |
| 2× | batch-egg-rewrite |
| 232× | add-sqr-sqrt_binary32 |
| 228× | pow1_binary32 |
| 227× | *-un-lft-identity_binary32 |
| 215× | expm1-log1p-u_binary32 |
| 214× | log1p-expm1-u_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 63 |
| 1 | 462 | 63 |
| 0 | 23 | 73 |
| 1× | saturated |
| 1× | node limit |
| 1× | egg-herbie |
| 486× | fma-neg_binary32 |
| 362× | fma-def_binary32 |
| 321× | associate-*r*_binary32 |
| 255× | associate-*l*_binary32 |
| 219× | *-commutative_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 324 | 5540 |
| 1 | 1160 | 4842 |
| 2 | 4773 | 4842 |
| 1× | node limit |
12 alts after pruning (11 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 139 | 1 | 140 |
| Fresh | 1 | 10 | 11 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 140 | 12 | 152 |
| Status | Error | Program |
| 19.2b | (log.f32 (pow.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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))))))) | |
| 1.2b | (*.f32 (sin.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.9b | (*.f32 (pow.f32 (cbrt.f32 (sin.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)))))) | |
| 1.3b | (pow.f32 (sqrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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))))))) 2) | |
| 5.8b | (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (log.f32 (exp.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.5b | (expm1.f32 (log1p.f32 (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.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)))))))) | |
| 2.7b | (cbrt.f32 (*.f32 (+.f32 (fma.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (*.f32 208/15 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)))) (*.f32 -16 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)))) (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.7b | (*.f32 (sin.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)) | |
| ✓ | 0.5b | (*.f32 (sin.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.3b | (*.f32 (pow.f32 (sqrt.f32 (sin.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.9b | (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.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) | |
| 0.7b | (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) 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))) |
Compiled 9567 to 5873 computations (38.6% saved)
Total 0.4b remaining (82%)
Threshold costs 0.4b (82%)
Compiled 106750 to 76152 computations (28.7% saved)
| 1× | egg-herbie |
| 8× | *-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 | 63 |
| 1 | 35 | 63 |
| 2 | 39 | 63 |
| 3 | 41 | 63 |
| 4 | 42 | 63 |
| 1× | saturated |
| 1× | fuel |
Compiled 544 to 368 computations (32.4% saved)
Loading profile data...