Details

Time bar (total: 12.1s)

analyze8.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 118 to 85 computations (28% saved)

sample4.1s (33.9%)

Results
4.1s8256×body128valid
Compiler

Compiled 236 to 170 computations (28% saved)

preprocess63.0ms (0.5%)

Algorithm
egg-herbie
Rules
404×distribute-rgt-neg-in_binary32
374×distribute-lft-neg-in_binary32
320×distribute-rgt-in_binary32
274×distribute-lft-in_binary32
271×associate-*r*_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01911584
16011552
222171120
348551120
066
Stop Event
saturated
node limit
Compiler

Compiled 71 to 50 computations (29.6% saved)

simplify32.0ms (0.3%)

Algorithm
egg-herbie
Rules
362×distribute-rgt-in_binary32
340×fma-def_binary32
335×distribute-lft-in_binary32
255×distribute-neg-in_binary32
228×distribute-rgt-neg-out_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02799
16797
221470
383966
4290366
5499866
Stop Event
node limit
Counts
1 → 2

prune7.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.3b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
Compiler

Compiled 354 to 245 computations (30.8% saved)

localize102.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
0.2b
(cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))
0.2b
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
0.4b
(*.f32 uy (*.f32 2 (PI.f32)))

series28.0ms (0.2%)

Counts
4 → 68
Calls

21 calls:

3.0ms
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
yi
-inf
3.0ms
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
uy
inf
3.0ms
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
yi
0
2.0ms
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
yi
inf
2.0ms
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
uy
0

rewrite59.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
616×prod-diff_binary32
173×add-sqr-sqrt_binary32
169×*-un-lft-identity_binary32
169×pow1_binary32
158×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01741
134141
2411641
01741
Stop Event
saturated
node limit
Counts
4 → 69

simplify41.0ms (0.3%)

Algorithm
egg-herbie
Rules
954×fma-neg_binary32
583×associate-*r*_binary32
576×associate-*l*_binary32
450×unswap-sqr_binary32
220×fma-def_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
089878
1252870
2756861
33680860
Stop Event
node limit
Counts
137 → 98

prune377.0ms (3.1%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New10114115
Fresh011
Picked101
Done000
Total10215117
Error
0.1b
Counts
117 → 15
Alt Table
StatusErrorProgram
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 2)) yi))))
1.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 uy uy)) -2 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)) 3))))
0.8b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (pow.f32 (*.f32 uy (*.f32 2 (PI.f32))) 3) 1/3)) yi))))
0.3b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (log1p.f32 (expm1.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (log.f32 (exp.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.0b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7)))))))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (*.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (+.f32 1 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (fma.f32 (pow.f32 (PI.f32) 6) (*.f32 (pow.f32 uy 6) -4/45) (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 uy uy) -2))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
5.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 3) (pow.f32 yi 3))))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (cbrt.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 3)) yi))))
0.3b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.3b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (pow.f32 (sqrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
Compiler

Compiled 7191 to 4312 computations (40% saved)

localize106.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))
0.2b
(cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))
0.2b
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
0.4b
(*.f32 uy (*.f32 2 (PI.f32)))

series3.0ms (0%)

Counts
1 → 12
Calls

3 calls:

2.0ms
(sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))
uy
0
0.0ms
(sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))
uy
inf
0.0ms
(sin.f32 (*.f32 uy (*.f32 2 (PI.f32))))
uy
-inf

rewrite32.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
649×pow1_binary32
595×add-log-exp_binary32
595×log1p-expm1-u_binary32
595×expm1-log1p-u_binary32
70×add-sqr-sqrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114010
2161610
0710
Stop Event
saturated
node limit
Counts
1 → 17

simplify29.0ms (0.2%)

Algorithm
egg-herbie
Rules
662×fma-def_binary32
544×cancel-sign-sub-inv_binary32
402×unswap-sqr_binary32
368×fma-neg_binary32
316×*-commutative_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032202
194198
2305196
31329196
44255196
Stop Event
node limit
Counts
29 → 27

prune474.0ms (3.9%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1113114
Fresh31114
Picked101
Done000
Total11514129
Error
0.1b
Counts
129 → 14
Alt Table
StatusErrorProgram
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 2)) yi))))
1.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 uy uy)) -2 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
4.8b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (log.f32 (+.f32 1 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))) yi))))
0.3b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (log.f32 (exp.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.0b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7)))))))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (*.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (+.f32 1 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (fma.f32 (pow.f32 (PI.f32) 6) (*.f32 (pow.f32 uy 6) -4/45) (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 uy uy) -2))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
5.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 3) (pow.f32 yi 3))))))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)) 3))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 3) yi))))
1.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (pow.f32 (sqrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.3b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) yi))))
Compiler

Compiled 7144 to 3954 computations (44.7% saved)

localize101.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)
0.2b
(*.f32 (*.f32 (-.f32 1 ux) maxCos) ux)
0.2b
(*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))
0.4b
(*.f32 (*.f32 uy 2) (PI.f32))

series252.0ms (2.1%)

Counts
4 → 108
Calls

27 calls:

33.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)
uy
inf
28.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)
yi
-inf
25.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)
yi
0
25.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)
yi
inf
24.0ms
(*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)
uy
-inf

rewrite38.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
205×associate-*r*_binary32
203×add-sqr-sqrt_binary32
198×*-un-lft-identity_binary32
198×pow1_binary32
186×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01964
140164
01982
Stop Event
saturated
node limit
Counts
4 → 63

simplify94.0ms (0.8%)

Algorithm
egg-herbie
Rules
960×times-frac_binary32
468×associate-*r*_binary32
426×fma-neg_binary32
346×associate-*l*_binary32
258×fma-def_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03015170
110444710
238934706
Stop Event
node limit
Counts
171 → 137

prune1.2s (10%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New2871288
Fresh11213
Picked011
Done000
Total28814302
Error
0.1b
Counts
302 → 14
Alt Table
StatusErrorProgram
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 2)) yi))))
1.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 uy uy)) -2 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
4.8b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (log.f32 (+.f32 1 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))) yi))))
0.3b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (log.f32 (exp.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.0b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7)))))))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (*.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (+.f32 1 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (fma.f32 (pow.f32 (PI.f32) 6) (*.f32 (pow.f32 uy 6) -4/45) (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 uy uy) -2))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
5.5b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (cbrt.f32 (*.f32 (pow.f32 (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) (sqrt.f32 (-.f32 1 (pow.f32 (*.f32 ux (*.f32 (-.f32 1 ux) maxCos)) 2)))) 3) (pow.f32 yi 3)))) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.5b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)) 3))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 3) yi))))
1.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (pow.f32 (sqrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.3b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) yi))))
Compiler

Compiled 23064 to 15490 computations (32.8% saved)

localize119.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) yi)
0.2b
(log1p.f32 (*.f32 uy (*.f32 2 (PI.f32))))
0.3b
(expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))
0.4b
(*.f32 uy (*.f32 2 (PI.f32)))

series23.0ms (0.2%)

Counts
3 → 48
Calls

12 calls:

3.0ms
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) yi)
uy
0
3.0ms
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) yi)
yi
-inf
3.0ms
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) yi)
yi
0
3.0ms
(*.f32 (sin.f32 (expm1.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) yi)
yi
inf
2.0ms
(log1p.f32 (*.f32 uy (*.f32 2 (PI.f32))))
uy
0

rewrite46.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
849×expm1-log1p-u_binary32
848×log1p-expm1-u_binary32
98×add-sqr-sqrt_binary32
97×pow1_binary32
96×*-un-lft-identity_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01131
120031
2230531
01139
Stop Event
saturated
node limit
Counts
3 → 70

simplify46.0ms (0.4%)

Algorithm
egg-herbie
Rules
529×associate-*l*_binary32
517×associate-*r*_binary32
291×fma-def_binary32
232×cancel-sign-sub-inv_binary32
204×*-commutative_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0106899
1324885
21045869
34875869
Stop Event
node limit
Counts
118 → 103

prune448.0ms (3.7%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New1334137
Fresh21012
Picked101
Done011
Total13615151
Error
0.1b
Counts
151 → 15
Alt Table
StatusErrorProgram
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 2)) yi))))
1.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (fma.f32 (*.f32 (pow.f32 (PI.f32) 2) (*.f32 uy uy)) -2 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.3b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (sqrt.f32 (*.f32 2 (PI.f32))) (*.f32 (sqrt.f32 (*.f32 2 (PI.f32))) uy))) yi))))
5.5b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2))) 3) (pow.f32 yi 3))))))
4.8b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (log.f32 (+.f32 1 (expm1.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))))) yi))))
0.3b
(+.f32 (+.f32 (*.f32 (*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) xi) (*.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux))))) yi)) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.7b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (log.f32 (exp.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.0b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (-.f32 (+.f32 (*.f32 2 (*.f32 uy (*.f32 yi (PI.f32)))) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (*.f32 yi (pow.f32 (PI.f32) 5))))) (+.f32 (*.f32 4/3 (*.f32 (pow.f32 uy 3) (*.f32 (pow.f32 (PI.f32) 3) yi))) (*.f32 8/315 (*.f32 (pow.f32 uy 7) (*.f32 yi (pow.f32 (PI.f32) 7)))))))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (*.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) (pow.f32 (cbrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
1.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (+.f32 1 (fma.f32 2/3 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (fma.f32 (pow.f32 (PI.f32) 6) (*.f32 (pow.f32 uy 6) -4/45) (*.f32 (pow.f32 (PI.f32) 2) (*.f32 (*.f32 uy uy) -2))))) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (-.f32 (exp.f32 (log1p.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 1)) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.5b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (PI.f32) (*.f32 uy 2)))) 3) yi))))
1.9b
(fma.f32 ux (*.f32 (-.f32 1 ux) (*.f32 maxCos zi)) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (pow.f32 (sqrt.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32))))) 2) xi (*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi))))
0.3b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (pow.f32 (cbrt.f32 (*.f32 2 (PI.f32))) 2) (*.f32 (cbrt.f32 (*.f32 2 (PI.f32))) uy))) yi))))
0.4b
(fma.f32 ux (*.f32 (-.f32 zi (*.f32 ux zi)) maxCos) (*.f32 (sqrt.f32 (fma.f32 (-.f32 1 ux) (*.f32 (*.f32 ux (*.f32 maxCos (*.f32 ux maxCos))) (+.f32 ux -1)) 1)) (fma.f32 (cos.f32 (*.f32 uy (*.f32 2 (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (sqrt.f32 uy) (*.f32 (sqrt.f32 uy) (*.f32 2 (PI.f32))))) yi))))
Compiler

Compiled 7819 to 4234 computations (45.8% saved)

regimes3.8s (31.3%)

Accuracy

Total 0.2b remaining (62.3%)

Threshold costs 0.2b (62.3%)

Counts
210 → 1
Compiler

Compiled 129718 to 91747 computations (29.3% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03377
15477
26577
37177
47577
57677
Stop Event
saturated

end462.0ms (3.8%)

Stop Event
fuel
Compiler

Compiled 991 to 697 computations (29.7% saved)

Profiling

Loading profile data...