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 130 to 94 computations (27.7% 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 |
| 14.6b | (*.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)))))) | |
| ▶ | 14.5b | (*.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 | (sqrt.f32 (fma.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)) 1)) |
| ✓ | 0.2b | (*.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))) |
| ✓ | 0.4b | (*.f32 uy (*.f32 2 (PI.f32))) |
| ✓ | 15.1b | (fma.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)) 1) |
4 calls:
| 146.0ms | (*.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))) |
| 62.0ms | (sqrt.f32 (fma.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)) 1)) |
| 11.0ms | (fma.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)) 1) |
| 3.0ms | (*.f32 uy (*.f32 2 (PI.f32))) |
| 1× | batch-egg-rewrite |
| 297× | expm1-udef_binary32 |
| 297× | log1p-udef_binary32 |
| 168× | add-sqr-sqrt_binary32 |
| 158× | log1p-expm1-u_binary32 |
| 158× | expm1-log1p-u_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 81 |
| 1 | 334 | 81 |
| 2 | 4344 | 81 |
| 1× | node limit |
4 calls:
| 65.0ms | (sqrt.f32 (fma.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)) 1)) |
| 65.0ms | (*.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))) |
| 65.0ms | (*.f32 uy (*.f32 2 (PI.f32))) |
| 65.0ms | (fma.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)) 1) |
| 1× | egg-herbie |
| 573× | fma-def_binary32 |
| 414× | associate-*r*_binary32 |
| 292× | associate-*l*_binary32 |
| 230× | times-frac_binary32 |
| 199× | associate--l+_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 429 | 8582 |
| 1 | 1606 | 7608 |
| 1× | node limit |
9 alts after pruning (9 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 177 | 9 | 186 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 179 | 9 | 188 |
| Status | Error | Program |
| 7.0b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux))) | |
| 14.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (/.f32 (-.f32 (*.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)))) 1) (-.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))) | |
| 14.6b | (log.f32 (pow.f32 (exp.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)))) | |
| 1.8b | (-.f32 (*.f32 (+.f32 (*.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4))) 1) (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)))))) (*.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))))) (+.f32 (*.f32 2 (*.f32 uy (*.f32 uy (pow.f32 (PI.f32) 2)))) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)))))) | |
| 1.7b | (-.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)))))))))) | |
| 15.4b | (pow.f32 (sqrt.f32 (*.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)))) 2) | |
| 14.5b | (*.f32 (cos.f32 (expm1.f32 (log1p.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))) | |
| 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 maxCos (*.f32 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 ux ux) (*.f32 (*.f32 maxCos maxCos) (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)))))))) | |
| ▶ | 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos (pow.f32 ux 2))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos ux)) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)))) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4)))) (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))))))))) |
Compiled 13343 to 8905 computations (33.3% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 1.3b | (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos (pow.f32 ux 2))) |
| ✓ | 2.1b | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) |
| ✓ | 2.9b | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) |
| ✓ | 3.1b | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) |
4 calls:
| 89.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) |
| 87.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) |
| 81.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) |
| 55.0ms | (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos (pow.f32 ux 2))) |
| 1× | batch-egg-rewrite |
| 245× | add-sqr-sqrt_binary32 |
| 241× | log1p-expm1-u_binary32 |
| 241× | expm1-log1p-u_binary32 |
| 235× | add-cbrt-cube_binary32 |
| 230× | add-cube-cbrt_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 26 | 102 |
| 1 | 563 | 94 |
| 1× | node limit |
4 calls:
| 41.0ms | (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos (pow.f32 ux 2))) |
| 41.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) |
| 41.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) |
| 41.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) |
| 1× | egg-herbie |
| 776× | fma-def_binary32 |
| 602× | associate-/r*_binary32 |
| 497× | associate-/l*_binary32 |
| 260× | cancel-sign-sub-inv_binary32 |
| 212× | fma-neg_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 134 | 1716 |
| 1 | 461 | 1684 |
| 2 | 1833 | 1450 |
| 1× | node limit |
9 alts after pruning (8 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 120 | 0 | 120 |
| Fresh | 0 | 8 | 8 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 120 | 9 | 129 |
| Status | Error | Program |
| 7.0b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux))) | |
| 14.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (/.f32 (-.f32 (*.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)))) 1) (-.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))) | |
| 14.6b | (log.f32 (pow.f32 (exp.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)))) | |
| 1.8b | (-.f32 (*.f32 (+.f32 (*.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4))) 1) (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)))))) (*.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))))) (+.f32 (*.f32 2 (*.f32 uy (*.f32 uy (pow.f32 (PI.f32) 2)))) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)))))) | |
| 1.7b | (-.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)))))))))) | |
| 15.4b | (pow.f32 (sqrt.f32 (*.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)))) 2) | |
| 14.5b | (*.f32 (cos.f32 (expm1.f32 (log1p.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))) | |
| ▶ | 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 maxCos (*.f32 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 ux ux) (*.f32 (*.f32 maxCos maxCos) (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)))))))) |
| ✓ | 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos (pow.f32 ux 2))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos ux)) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)))) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4)))) (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))))))))) |
Compiled 18270 to 13949 computations (23.7% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.6b | (pow.f32 (*.f32 ux (-.f32 2 ux)) 3) |
| ✓ | 0.7b | (*.f32 (*.f32 maxCos maxCos) (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 ux ux) (*.f32 (*.f32 maxCos maxCos) (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)))))) |
| ✓ | 2.1b | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) |
4 calls:
| 125.0ms | (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 ux ux) (*.f32 (*.f32 maxCos maxCos) (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)))))) |
| 71.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) |
| 29.0ms | (*.f32 (*.f32 maxCos maxCos) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) |
| 3.0ms | (pow.f32 (*.f32 ux (-.f32 2 ux)) 3) |
| 1× | batch-egg-rewrite |
| 275× | log1p-expm1-u_binary32 |
| 275× | expm1-log1p-u_binary32 |
| 270× | add-cbrt-cube_binary32 |
| 263× | add-log-exp_binary32 |
| 262× | add-cube-cbrt_binary32 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 27 | 121 |
| 1 | 611 | 106 |
| 1× | node limit |
4 calls:
| 53.0ms | (pow.f32 (*.f32 ux (-.f32 2 ux)) 3) |
| 53.0ms | (*.f32 (*.f32 maxCos maxCos) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) |
| 53.0ms | (fma.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (*.f32 1/2 (+.f32 (*.f32 (*.f32 ux ux) (*.f32 (*.f32 maxCos maxCos) (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)))))) |
| 53.0ms | (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (*.f32 maxCos maxCos)) |
| 1× | egg-herbie |
| 627× | associate-/l*_binary32 |
| 309× | cancel-sign-sub-inv_binary32 |
| 190× | fma-neg_binary32 |
| 186× | sub-neg_binary32 |
| 165× | fma-def_binary32 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 187 | 3161 |
| 1 | 587 | 3005 |
| 2 | 2355 | 2826 |
| 1× | node limit |
9 alts after pruning (7 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 160 | 0 | 160 |
| Fresh | 0 | 7 | 7 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 160 | 9 | 169 |
| Status | Error | Program |
| 7.0b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux))) | |
| 14.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (/.f32 (-.f32 (*.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)))) 1) (-.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))) | |
| 14.6b | (log.f32 (pow.f32 (exp.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)))) | |
| 1.8b | (-.f32 (*.f32 (+.f32 (*.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4))) 1) (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)))))) (*.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))))) (+.f32 (*.f32 2 (*.f32 uy (*.f32 uy (pow.f32 (PI.f32) 2)))) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)))))) | |
| ▶ | 1.7b | (-.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)))))))))) |
| 15.4b | (pow.f32 (sqrt.f32 (*.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)))) 2) | |
| 14.5b | (*.f32 (cos.f32 (expm1.f32 (log1p.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))) | |
| ✓ | 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 maxCos (*.f32 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 ux ux) (*.f32 (*.f32 maxCos maxCos) (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)))))))) |
| ✓ | 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos (pow.f32 ux 2))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos ux)) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)))) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4)))) (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))))))))) |
Compiled 17895 to 11652 computations (34.9% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 1.0b | (pow.f32 (PI.f32) 2) |
| ✓ | 1.3b | (*.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:
| 13.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) |
| 1× | batch-egg-rewrite |
| 785× | log1p-expm1-u_binary32 |
| 785× | expm1-log1p-u_binary32 |
| 99× | add-cbrt-cube_binary32 |
| 97× | add-sqr-sqrt_binary32 |
| 97× | add-log-exp_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 23 |
| 1 | 234 | 23 |
| 2 | 2453 | 23 |
| 1× | node limit |
4 calls:
| 45.0ms | (pow.f32 (PI.f32) 2) |
| 45.0ms | (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) |
| 45.0ms | (pow.f32 (PI.f32) 6) |
| 45.0ms | (pow.f32 (PI.f32) 4) |
| 1× | egg-herbie |
| 711× | sqr-pow_binary32 |
| 392× | unswap-sqr_binary32 |
| 375× | *-commutative_binary32 |
| 316× | associate-*l*_binary32 |
| 280× | cube-prod_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 132 |
| 1 | 15 | 132 |
| 2 | 40 | 132 |
| 3 | 178 | 132 |
| 4 | 1094 | 132 |
| 5 | 1939 | 132 |
| 6 | 2001 | 132 |
| 7 | 2106 | 132 |
| 8 | 2247 | 132 |
| 9 | 2389 | 132 |
| 10 | 2563 | 132 |
| 11 | 2788 | 132 |
| 12 | 3056 | 132 |
| 13 | 3397 | 132 |
| 14 | 3808 | 132 |
| 15 | 4285 | 132 |
| 16 | 4841 | 132 |
| 1× | node limit |
9 alts after pruning (6 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 77 | 0 | 77 |
| Fresh | 0 | 6 | 6 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 77 | 9 | 86 |
| Status | Error | Program |
| 7.0b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux))) | |
| 14.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (/.f32 (-.f32 (*.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1)))) 1) (-.f32 (*.f32 (-.f32 (fma.f32 ux maxCos 1) ux) (-.f32 ux (fma.f32 ux maxCos 1))) 1)))) | |
| 14.6b | (log.f32 (pow.f32 (exp.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)))) | |
| 1.8b | (-.f32 (*.f32 (+.f32 (*.f32 2/3 (*.f32 (pow.f32 (PI.f32) 4) (pow.f32 uy 4))) 1) (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)))))) (*.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))))) (+.f32 (*.f32 2 (*.f32 uy (*.f32 uy (pow.f32 (PI.f32) 2)))) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)))))) | |
| ✓ | 1.7b | (-.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)))))))))) |
| 15.4b | (pow.f32 (sqrt.f32 (*.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)))) 2) | |
| 14.5b | (*.f32 (cos.f32 (expm1.f32 (log1p.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))) | |
| ✓ | 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (fma.f32 (*.f32 maxCos (*.f32 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 ux ux) (*.f32 (*.f32 maxCos maxCos) (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)))))))) |
| ✓ | 0.6b | (*.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (-.f32 (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos (pow.f32 ux 2))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 maxCos ux)) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)))) (+.f32 (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4)))) (*.f32 1/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))))))))) |
Compiled 12662 to 9182 computations (27.5% saved)
Total 0.1b remaining (35.3%)
Threshold costs 0.1b (35.3%)
Compiled 103699 to 76575 computations (26.2% saved)
| 1× | egg-herbie |
| 15× | *-commutative_binary32 |
| 10× | +-commutative_binary32 |
| 9× | sub-neg_binary32 |
| 8× | neg-sub0_binary32 |
| 8× | neg-mul-1_binary32 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 21 | 47 |
| 1 | 33 | 47 |
| 2 | 41 | 47 |
| 3 | 62 | 47 |
| 4 | 81 | 47 |
| 5 | 93 | 47 |
| 6 | 100 | 47 |
| 7 | 102 | 47 |
| 1× | saturated |
Compiled 704 to 506 computations (28.1% saved)
Loading profile data...