Details

Time bar (total: 12.2s)

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.0s (33.1%)

Results
4.0s8256×body128valid
Compiler

Compiled 236 to 170 computations (28% saved)

preprocess76.0ms (0.6%)

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)

simplify31.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)

localize94.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)))

series30.0ms (0.2%)

Counts
4 → 68
Calls

21 calls:

4.0ms
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
yi
0
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)
yi
inf
2.0ms
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
uy
0
2.0ms
(*.f32 (-.f32 1 ux) (*.f32 maxCos zi))
maxCos
-inf

rewrite57.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
616×prod-diff_binary32
171×add-sqr-sqrt_binary32
158×log1p-expm1-u_binary32
158×expm1-log1p-u_binary32
157×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01741
134241
2411841
Stop Event
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

prune386.0ms (3.2%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New10015115
Fresh011
Picked101
Done000
Total10116117
Error
0.1b
Counts
117 → 16
Alt Table
StatusErrorProgram
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.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 (pow.f32 (sqrt.f32 (*.f32 uy (*.f32 2 (PI.f32)))) 2)) 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 (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))))
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 uy (*.f32 2 (PI.f32)))) 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 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))) 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.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.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.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.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))))
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))))
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 7291 to 4382 computations (39.9% saved)

localize95.0ms (0.8%)

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

rewrite33.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
595×log1p-expm1-u_binary32
595×expm1-log1p-u_binary32
484×prod-diff_binary32
126×expm1-udef_binary32
126×log1p-udef_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114010
2162810
Stop Event
node limit
Counts
1 → 18

simplify28.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
30 → 28

prune511.0ms (4.2%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New1114115
Fresh41115
Picked101
Done000
Total11615131
Error
0.1b
Counts
131 → 15
Alt Table
StatusErrorProgram
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))))
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 (log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))) 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))))))
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 (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.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.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 (expm1.f32 (log1p.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))
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.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))))
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.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.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))))
Compiler

Compiled 7289 to 4044 computations (44.5% saved)

localize86.0ms (0.7%)

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))

series244.0ms (2%)

Counts
4 → 108
Calls

27 calls:

31.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
26.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
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)
yi
inf
23.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
23.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
198×add-sqr-sqrt_binary32
186×log1p-expm1-u_binary32
186×expm1-log1p-u_binary32
185×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01964
140364
Stop Event
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.3s (10.4%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New2871288
Fresh11314
Picked011
Done000
Total28815303
Error
0.1b
Counts
303 → 15
Alt Table
StatusErrorProgram
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))))
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 (log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))) 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))
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 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.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.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 (expm1.f32 (log1p.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))
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.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))))
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.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.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))))
Compiler

Compiled 23162 to 15557 computations (32.8% saved)

localize113.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (sin.f32 (*.f32 uy (*.f32 2 (PI.f32)))) yi)
0.4b
(*.f32 uy (*.f32 2 (PI.f32)))
1.6b
(pow.f32 (exp.f32 2) (PI.f32))
11.8b
(log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))

series715.0ms (5.9%)

Counts
2 → 12
Calls

3 calls:

481.0ms
(log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))
uy
0
123.0ms
(log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))
uy
-inf
111.0ms
(log.f32 (pow.f32 (pow.f32 (exp.f32 2) (PI.f32)) uy))
uy
inf

rewrite37.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
681×log1p-expm1-u_binary32
681×expm1-log1p-u_binary32
146×log-pow_binary32
140×expm1-udef_binary32
140×log1p-udef_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
116515
2192715
Stop Event
node limit
Counts
2 → 54

simplify21.0ms (0.2%)

Algorithm
egg-herbie
Rules
885×fma-def_binary32
488×distribute-rgt-in_binary32
394×distribute-lft-in_binary32
368×unswap-sqr_binary32
218×associate-*l*_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01096
12096
23496
36296
416396
555496
6205896
Stop Event
node limit
Counts
66 → 57

prune389.0ms (3.2%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New991100
Fresh01313
Picked101
Done011
Total10015115
Error
0.1b
Counts
115 → 15
Alt Table
StatusErrorProgram
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))
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 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.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.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 (expm1.f32 (log1p.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))
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))))
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.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 (log.f32 (pow.f32 (sqrt.f32 (pow.f32 (exp.f32 4) (PI.f32))) uy))) 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))))
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.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.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))))
Compiler

Compiled 5739 to 3411 computations (40.6% saved)

regimes3.3s (27.2%)

Accuracy

Total 0.2b remaining (59%)

Threshold costs 0.2b (59%)

Counts
182 → 1
Compiler

Compiled 114828 to 81707 computations (28.8% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03572
15072
25372
35572
45672
Stop Event
saturated

end449.0ms (3.7%)

Stop Event
fuel
Compiler

Compiled 989 to 702 computations (29% saved)

Profiling

Loading profile data...