Details

Time bar (total: 26.4s)

analyze674.0ms (2.6%)

Algorithm
search
Search
TrueOtherFalseIter
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
Compiler

Compiled 51 to 37 computations (27.5% saved)

sample2.1s (8.1%)

Results
2.1s8256×body128valid
Compiler

Compiled 102 to 74 computations (27.5% saved)

preprocess13.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043156
145156
033
Stop Event
saturated
saturated
Compiler

Compiled 28 to 20 computations (28.6% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01739
11939
Stop Event
saturated
Counts
1 → 1

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
13.5b
Counts
2 → 1
Alt Table
StatusErrorProgram
13.5b
(*.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))))))
Compiler

Compiled 84 to 60 computations (28.6% saved)

localize47.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
0.3b
(*.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.2b
(-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))

series354.0ms (1.3%)

Counts
4 → 92
Calls

24 calls:

169.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
35.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
28.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
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
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))))))
maxCos
inf

rewrite49.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
308×log-pow_binary32
303×expm1-udef_binary32
303×log1p-udef_binary32
171×add-sqr-sqrt_binary32
163×log1p-expm1-u_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01767
132667
2345567
Stop Event
node limit
Counts
4 → 61

simplify989.0ms (3.7%)

Algorithm
egg-herbie
Rules
1678×sqr-pow_binary32
538×pow-sqr_binary32
69×cube-mult_binary32
69×unpow3_binary32
64×cube-prod_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03016675
14426577
25116577
35766577
46486577
57226577
67996577
78826577
89696577
910626577
1011596577
1112626577
1213696577
1314826577
1415996577
1517226577
1618496577
1719826577
1821196577
1922626577
2024096577
2125626577
2225946577
2326216577
2426216577
2527516577
2629076577
2730746577
2832456577
2934226577
3036036577
3137906577
3239816577
3341786577
3443796577
3545866577
3645946577
3745986577
3845986577
3948076577
Stop Event
node limit
Counts
153 → 142

prune253.0ms (1%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New13210142
Fresh000
Picked101
Done000
Total13310143
Error
0.4b
Counts
143 → 10
Alt Table
StatusErrorProgram
14.2b
(pow.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2)))) 3) 1/3)
5.4b
(-.f32 (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))) (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (*.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))))))))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))))))
3.3b
(fma.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (neg.f32 (*.f32 4/3 (*.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
13.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2))) 3)))
2.3b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))
19.3b
(*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
7.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
1.9b
(-.f32 (fma.f32 4/15 (*.f32 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))) (fma.f32 8/315 (*.f32 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 uy 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
1.0b
(-.f32 (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))))))))
1.0b
(-.f32 (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (+.f32 (*.f32 (*.f32 (sin.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 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))) (+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))))))
Compiler

Compiled 10408 to 6709 computations (35.5% saved)

localize378.0ms (1.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))
1.5b
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))))
1.5b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))
1.5b
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))

series1.4s (5.1%)

Counts
4 → 128
Calls

36 calls:

285.0ms
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))
uy
0
102.0ms
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))
uy
-inf
97.0ms
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))
uy
inf
61.0ms
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))
maxCos
inf
60.0ms
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))
maxCos
-inf

rewrite58.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
391×log1p-expm1-u_binary32
391×expm1-log1p-u_binary32
381×add-log-exp_binary32
380×add-exp-log_binary32
373×pow1_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
043312
1820287
Stop Event
node limit
Counts
4 → 54

simplify4.9s (18.4%)

Algorithm
egg-herbie
Rules
1557×sqr-pow_binary32
508×pow-sqr_binary32
103×fma-def_binary32
50×cube-mult_binary32
50×unpow3_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046013316
163213316
268013316
372113316
476813316
581513316
686413316
791513316
897013316
9102613316
10108613316
11114713316
12121213316
13127813316
14134813316
15141913316
16149413316
17157013316
18165013316
19173113316
20181613316
21190213316
22199213316
23208313316
24217813316
25227413316
26237413316
27247513316
28258013316
29268613316
30279613316
31290713316
32291113316
33291313316
34291313316
35302713316
36314113316
37326113316
38338213316
39350713316
40363313316
41376313316
42389413316
43402913316
44416513316
45430513316
46444613316
47459113316
48473713316
49488713316
50489113316
51489313316
52489313316
Stop Event
node limit
Counts
182 → 166

prune1.2s (4.4%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1651166
Fresh189
Picked101
Done000
Total1679176
Error
0.4b
Counts
176 → 9
Alt Table
StatusErrorProgram
14.2b
(pow.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2)))) 3) 1/3)
5.4b
(-.f32 (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))) (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (*.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))))))))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))))))
3.3b
(fma.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (neg.f32 (*.f32 4/3 (*.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
1.0b
(-.f32 (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (+.f32 (*.f32 (*.f32 (sin.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 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))) (+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))))))
1.0b
(-.f32 (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))))) (cbrt.f32 (pow.f32 (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)))))) 3)))
19.3b
(*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
7.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
1.9b
(-.f32 (fma.f32 4/15 (*.f32 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))) (fma.f32 8/315 (*.f32 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 uy 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
13.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2))) 3)))
Compiler

Compiled 34644 to 20323 computations (41.3% saved)

localize201.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))
1.5b
(*.f32 (*.f32 (sin.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)))))
1.5b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))
1.6b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))))

series580.0ms (2.2%)

Counts
4 → 128
Calls

36 calls:

30.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))
maxCos
-inf
30.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))
maxCos
0
28.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))
maxCos
-inf
28.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))
maxCos
inf
27.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))
maxCos
0

rewrite45.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
308×log1p-expm1-u_binary32
308×expm1-log1p-u_binary32
302×add-cbrt-cube_binary32
298×add-log-exp_binary32
297×add-cube-cbrt_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
034144
1649136
Stop Event
node limit
Counts
4 → 48

simplify1.6s (5.9%)

Algorithm
egg-herbie
Rules
1614×sqr-pow_binary32
531×pow-sqr_binary32
50×cube-mult_binary32
50×unpow3_binary32
46×cube-prod_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03127652
14327652
24877652
35287652
45757652
56227652
66717652
77227652
87777652
98337652
108937652
119547652
1210197652
1310857652
1411557652
1512267652
1613017652
1713777652
1814577652
1915387652
2016237652
2117097652
2217997652
2318907652
2419857652
2520817652
2621817652
2722827652
2823877652
2924937652
3026037652
3127147652
3227187652
3327207652
3427207652
3528347652
3629487652
3730687652
3831897652
3933147652
4034407652
4135707652
4237017652
4338367652
4439727652
4541127652
4642537652
4743987652
4845447652
4946947652
5046987652
5147007652
5247007652
5348507652
Stop Event
node limit
Counts
176 → 148

prune1.1s (4.3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1480148
Fresh088
Picked011
Done000
Total1489157
Error
0.4b
Counts
157 → 9
Alt Table
StatusErrorProgram
14.2b
(pow.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2)))) 3) 1/3)
5.4b
(-.f32 (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))) (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (*.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))))))))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))))))
3.3b
(fma.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (neg.f32 (*.f32 4/3 (*.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
1.0b
(-.f32 (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (+.f32 (*.f32 (*.f32 (sin.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 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))) (+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))))))
1.0b
(-.f32 (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))))) (cbrt.f32 (pow.f32 (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)))))) 3)))
19.3b
(*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
7.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
1.9b
(-.f32 (fma.f32 4/15 (*.f32 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))) (fma.f32 8/315 (*.f32 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 uy 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
13.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2))) 3)))
Compiler

Compiled 31619 to 22384 computations (29.2% saved)

localize477.0ms (1.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))))
1.5b
(*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2))
1.5b
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2))))))
19.7b
(cbrt.f32 (pow.f32 (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)))))) 3))

series1.9s (7.1%)

Counts
3 → 96
Calls

27 calls:

222.0ms
(cbrt.f32 (pow.f32 (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)))))) 3))
uy
inf
213.0ms
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2))))))
uy
inf
204.0ms
(fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2))))))
uy
-inf
203.0ms
(cbrt.f32 (pow.f32 (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)))))) 3))
uy
-inf
98.0ms
(cbrt.f32 (pow.f32 (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)))))) 3))
maxCos
0

rewrite75.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
334×log1p-expm1-u_binary32
334×expm1-log1p-u_binary32
324×add-cbrt-cube_binary32
322×add-log-exp_binary32
321×add-exp-log_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036327
1703327
Stop Event
node limit
Counts
3 → 50

simplify1.1s (4.3%)

Algorithm
egg-herbie
Rules
1185×sqr-pow_binary32
922×pow-sqr_binary32
109×fma-def_binary32
11×log-pow_binary32
10×count-2_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035714601
151414601
256314601
361314601
466914601
573814601
683014601
797014601
8119014601
9158014601
10226414601
11356414601
12357014601
13357414601
14357614601
15357614601
Stop Event
node limit
Counts
146 → 92

prune831.0ms (3.2%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1370137
Fresh077
Picked011
Done011
Total1379146
Error
0.4b
Counts
146 → 9
Alt Table
StatusErrorProgram
14.2b
(pow.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2)))) 3) 1/3)
5.4b
(-.f32 (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))) (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (*.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))))))))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 3/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 5)))) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3))))))))))))
3.3b
(fma.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (neg.f32 (*.f32 4/3 (*.f32 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
1.0b
(-.f32 (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))) (+.f32 (*.f32 (*.f32 (sin.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 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))) (+.f32 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3))))) (+.f32 (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)))))) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2)) 3)))))))))
1.0b
(-.f32 (fma.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux))) (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 ux ux))) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (*.f32 ux ux)))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (sqrt.f32 (/.f32 1 (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) 3)))))) (cbrt.f32 (pow.f32 (fma.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4))) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)) (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -1/2)) (*.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (pow.f32 (*.f32 maxCos ux) 2)) (pow.f32 (-.f32 (*.f32 2 ux) (*.f32 ux ux)) -3/2)))))) 3)))
19.3b
(*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
7.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
1.9b
(-.f32 (fma.f32 4/15 (*.f32 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 2 (*.f32 (*.f32 uy (PI.f32)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))) (fma.f32 8/315 (*.f32 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 uy 3)) (sqrt.f32 (-.f32 (fma.f32 2 (*.f32 maxCos (*.f32 ux ux)) (*.f32 2 ux)) (fma.f32 ux ux (fma.f32 (*.f32 maxCos maxCos) (*.f32 ux ux) (*.f32 2 (*.f32 maxCos ux))))))))))
13.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (pow.f32 (cbrt.f32 (-.f32 1 (pow.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) 2))) 3)))
Compiler

Compiled 27784 to 16752 computations (39.7% saved)

regimes5.6s (21.2%)

Accuracy

Total 0.1b remaining (20%)

Threshold costs 0.1b (20%)

Counts
164 → 1
Compiler

Compiled 237789 to 154449 computations (35% saved)

simplify1.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02151
Stop Event
saturated

end528.0ms (2%)

Stop Event
fuel
Compiler

Compiled 1090 to 703 computations (35.5% saved)

Profiling

Loading profile data...