Details

Time bar (total: 16.5s)

analyze883.0ms (5.3%)

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.3s (14%)

Results
2.2s8256×body128valid
Compiler

Compiled 130 to 94 computations (27.7% saved)

simplify51.0ms (0.3%)

Algorithm
egg-herbie
Rules
743×sub-neg_binary32
674×fma-neg_binary32
386×associate--l-_binary32
316×distribute-rgt-in_binary32
286×unsub-neg_binary32
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01739
14135
211735
343133
4175533
5413533
6496633

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
14.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
14.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))))))
14.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
Compiler

Compiled 156 to 110 computations (29.5% saved)

localize46.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.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.7b
(-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))

series304.0ms (1.8%)

Counts
4 → 92
Calls

4 calls:

270.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))))))
20.0ms
(-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))
10.0ms
(*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))
3.0ms
(*.f32 (*.f32 uy 2) (PI.f32))

rewrite90.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
321×log1p-udef_binary32
185×add-sqr-sqrt_binary32
177×log1p-expm1-u_binary32
177×expm1-log1p-u_binary32
173×add-log-exp_binary32
Counts
4 → 94
Calls

4 calls:

87.0ms
(*.f32 (*.f32 uy 2) (PI.f32))
87.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))))))
87.0ms
(*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))
87.0ms
(-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01767
137061
2467261
3511461
000
100

simplify168.0ms (1%)

Algorithm
egg-herbie
Rules
497×fma-neg_binary32
376×sub-neg_binary32
347×fma-def_binary32
284×associate-*r*_binary32
267×associate-*l*_binary32
Counts
186 → 177
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03016612
110505692
242875688
351555688

prune324.0ms (2%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New16413177
Fresh011
Picked101
Done000
Total16514179
Error
0.3b
Counts
179 → 14
Alt Table
StatusErrorProgram
14.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))))))
7.0b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
22.7b
(log.f32 (pow.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)))))
14.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (pow.f32 (pow.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)) 3) 1/3)))
14.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)
6.0b
(-.f32 (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6))) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5)))) (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (+.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))) (+.f32 (*.f32 3/2 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))))) (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 4))))))))) (fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (+.f32 (+.f32 (*.f32 (*.f32 1/2 (*.f32 (*.f32 ux ux) (*.f32 maxCos (*.f32 maxCos (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))))))) (+.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))))) (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (+.f32 (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3)))) (*.f32 3/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5))))))) (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (+.f32 (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4)))) (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 3)))))))))
14.6b
(exp.f32 (log.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2))))))
14.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
0.5b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (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)))))))
1.2b
(-.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.6b
(fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (-.f32 (*.f32 maxCos (*.f32 ux ux)) (*.f32 maxCos ux))))
14.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (/.f32 1 (/.f32 (+.f32 1 (+.f32 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2) (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 4))) (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 6))))))
14.2b
(*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
1.5b
(-.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 2 (*.f32 (PI.f32) uy)) (*.f32 4/15 (*.f32 (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 4/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (pow.f32 (PI.f32) 7))))))
Compiler

Compiled 10889 to 7366 computations (32.4% saved)

localize148.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))
0.2b
(*.f32 maxCos (pow.f32 ux 2))
0.4b
(*.f32 (*.f32 uy 2) (PI.f32))
0.4b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (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)))))))

series377.0ms (2.3%)

Counts
3 → 52
Calls

3 calls:

240.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (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)))))))
129.0ms
(sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))
8.0ms
(*.f32 maxCos (pow.f32 ux 2))

rewrite78.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
458×log1p-udef_binary32
247×log1p-expm1-u_binary32
247×expm1-log1p-u_binary32
236×add-cube-cbrt_binary32
236×add-cbrt-cube_binary32
Counts
3 → 47
Calls

3 calls:

76.0ms
(sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux))))))
76.0ms
(*.f32 maxCos (pow.f32 ux 2))
76.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (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)))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02397
151685
2473485
3567485
000
100

simplify179.0ms (1.1%)

Algorithm
egg-herbie
Rules
582×fma-def_binary32
522×fma-neg_binary32
426×associate-*r*_binary32
307×associate-*l*_binary32
230×times-frac_binary32
Counts
99 → 137
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04307771
115166802
249186802
353786802

prune394.0ms (2.4%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New14113154
Fresh12113
Picked101
Done000
Total15414168
Error
0.0b
Counts
168 → 14
Alt Table
StatusErrorProgram
0.9b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))))) 3))
6.0b
(-.f32 (fma.f32 1/2 (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 6))) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5)))) (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (*.f32 ux (-.f32 2 ux))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (+.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 3))) (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 ux 4) (pow.f32 maxCos 3)))))) (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (*.f32 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 ux 4) (pow.f32 maxCos 3))) 3/2))))) (fma.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3))) (+.f32 (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (*.f32 maxCos maxCos) (pow.f32 ux 4)))) (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 ux 3) (pow.f32 maxCos 3)))))) (+.f32 (*.f32 (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 5))) (+.f32 (*.f32 1/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 ux 3) (pow.f32 maxCos 3)))) (*.f32 3/2 (*.f32 (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))) (*.f32 (pow.f32 maxCos 3) (pow.f32 ux 5)))))) (*.f32 (*.f32 1/2 (*.f32 (*.f32 maxCos (*.f32 maxCos (*.f32 ux ux))) (sin.f32 (*.f32 2 (*.f32 (PI.f32) uy))))) (+.f32 (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (/.f32 1 (pow.f32 (*.f32 ux (-.f32 2 ux)) 3)))))))))
0.5b
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (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)))))))
1.3b
(*.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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2) 1/3))
1.2b
(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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))) 2)
14.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
0.7b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))) 2) 1/2) (pow.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))) 1/2)))
0.9b
(*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 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)))))))
0.7b
(*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 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)))))))
2.7b
(exp.f32 (log.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))))
1.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))))
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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2)))
20.8b
(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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))))))
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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))) 3)
Compiler

Compiled 13324 to 8716 computations (34.6% saved)

localize87.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
0.3b
(expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32))))
0.4b
(*.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 (*.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)))))))

series383.0ms (2.3%)

Counts
3 → 56
Calls

3 calls:

373.0ms
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (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)))))))
6.0ms
(log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
3.0ms
(expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32))))

rewrite101.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
256×expm1-log1p-u_binary32
255×log1p-expm1-u_binary32
243×add-cube-cbrt_binary32
243×add-cbrt-cube_binary32
243×add-log-exp_binary32
Counts
3 → 42
Calls

3 calls:

100.0ms
(log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
100.0ms
(expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (PI.f32))))
100.0ms
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (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)))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02569
153563
2492563
3510563
000
100

simplify115.0ms (0.7%)

Algorithm
egg-herbie
Rules
485×fma-neg_binary32
369×fma-def_binary32
300×associate-*r*_binary32
273×associate-*l*_binary32
231×*-commutative_binary32
Counts
98 → 116
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03255538
111084796
244744796
349684796

prune238.0ms (1.4%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New1312133
Fresh11213
Picked011
Done000
Total13215147
Error
0.0b
Counts
147 → 15
Alt Table
StatusErrorProgram
0.5b
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 (*.f32 uy 2) (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)))))))
1.3b
(*.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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2) 1/3))
1.2b
(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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))) 2)
14.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
3.8b
(*.f32 (sin.f32 (expm1.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 uy (PI.f32))) (*.f32 8/3 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3)))) (*.f32 2 (*.f32 (pow.f32 uy 2) (pow.f32 (PI.f32) 2)))))) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))
0.9b
(*.f32 (sin.f32 (*.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2) (cbrt.f32 (*.f32 (*.f32 uy 2) (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)))))))
0.7b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))) 2) 1/2) (pow.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))) 1/2)))
0.9b
(*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 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)))))))
0.7b
(*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))
0.9b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (cbrt.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))))) 3))
2.7b
(exp.f32 (log.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))))
1.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))))
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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2)))
20.8b
(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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))))))
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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))) 3)
Compiler

Compiled 10447 to 7028 computations (32.7% saved)

localize77.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2)
0.4b
(*.f32 (*.f32 uy 2) (PI.f32))
0.4b
(*.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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2))
0.7b
(pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)

series1.5s (9%)

Counts
3 → 68
Calls

3 calls:

1.3s
(*.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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2))
119.0ms
(pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2)
12.0ms
(pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)

rewrite84.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
695×prod-diff_binary32
220×add-sqr-sqrt_binary32
213×log1p-expm1-u_binary32
213×expm1-log1p-u_binary32
207×add-cbrt-cube_binary32
Counts
3 → 48
Calls

3 calls:

82.0ms
(pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2)
82.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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2))
82.0ms
(pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02296
146494
2484594
3614994
000
100

simplify262.0ms (1.6%)

Algorithm
egg-herbie
Rules
463×*-commutative_binary32
403×times-frac_binary32
290×+-commutative_binary32
274×fma-def_binary32
236×associate-+r+_binary32
Counts
116 → 153
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0104519397
1366818917
2521118917

prune648.0ms (3.9%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New1655170
Fresh31013
Picked101
Done101
Total17015185
Error
0.0b
Counts
185 → 15
Alt Table
StatusErrorProgram
0.6b
(cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (*.f32 (*.f32 maxCos ux) (+.f32 2 (*.f32 maxCos ux)))))) 2) 3/2) (pow.f32 (cbrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (*.f32 (*.f32 maxCos ux) (+.f32 2 (*.f32 maxCos ux)))))) 3/2))))
0.9b
(*.f32 (sin.f32 (*.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2) (cbrt.f32 (*.f32 (*.f32 uy 2) (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)))))))
0.5b
(cbrt.f32 (*.f32 (pow.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (PI.f32) 3) (pow.f32 (*.f32 uy 2) 3)))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2)))
1.3b
(*.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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2) 1/3))
3.7b
(cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (+.f32 (fma.f32 3 (/.f32 (*.f32 maxCos (*.f32 ux (exp.f32 (*.f32 3/2 (+.f32 (log.f32 (-.f32 2 (*.f32 2 maxCos))) (log.f32 ux)))))) (-.f32 2 (*.f32 2 maxCos))) (exp.f32 (*.f32 3/2 (+.f32 (log.f32 (-.f32 2 (*.f32 2 maxCos))) (log.f32 ux))))) (*.f32 -3/2 (+.f32 (/.f32 (*.f32 (*.f32 maxCos maxCos) (*.f32 ux (exp.f32 (*.f32 3/2 (+.f32 (log.f32 (-.f32 2 (*.f32 2 maxCos))) (log.f32 ux)))))) (-.f32 2 (*.f32 2 maxCos))) (/.f32 (*.f32 ux (exp.f32 (*.f32 3/2 (+.f32 (log.f32 (-.f32 2 (*.f32 2 maxCos))) (log.f32 ux))))) (-.f32 2 (*.f32 2 maxCos))))))))
1.2b
(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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))) 2)
14.1b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (fma.f32 (fma.f32 ux maxCos (-.f32 1 ux)) (-.f32 ux (fma.f32 ux maxCos 1)) 1)))
0.9b
(*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 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)))))))
0.7b
(*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) (sqrt.f32 (-.f32 (+.f32 (*.f32 2 (*.f32 maxCos (pow.f32 ux 2))) (*.f32 2 ux)) (+.f32 (pow.f32 ux 2) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 2 (*.f32 maxCos ux)))))))
0.5b
(cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (*.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (*.f32 (*.f32 maxCos ux) (+.f32 2 (*.f32 maxCos ux))))) (cbrt.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (*.f32 (*.f32 maxCos ux) (+.f32 2 (*.f32 maxCos ux))))) 3/2)))))
2.7b
(exp.f32 (log.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))))
1.2b
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (exp.f32 (log.f32 (sqrt.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))))
2.9b
(cbrt.f32 (*.f32 (-.f32 (*.f32 8 (*.f32 (pow.f32 uy 3) (pow.f32 (PI.f32) 3))) (*.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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))) 3/2)))
20.8b
(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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2)))))))
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 ux ux (fma.f32 2 (*.f32 maxCos ux) (pow.f32 (*.f32 maxCos ux) 2))))))) 3)
Compiler

Compiled 28464 to 20304 computations (28.7% saved)

regimes6.9s (41.7%)

Accuracy

Total 0.5b remaining (86.7%)

Threshold costs 0.5b (86.7%)

Counts
205 → 1
Compiler

Compiled 107752 to 78457 computations (27.2% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
18×*-commutative_binary32
13×+-commutative_binary32
10×sub-neg_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02561
13961
24861
36061
48361
59961
610961
711561
811761
911661

end795.0ms (4.8%)

Compiler

Compiled 768 to 543 computations (29.3% saved)

Profiling

Loading profile data...