Details

Time bar (total: 18.6s)

analyze14.0ms (0.1%)

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

Compiled 118 to 85 computations (28% saved)

sample4.7s (25.2%)

Results
4.6s8256×body128valid
Compiler

Compiled 307 to 220 computations (28.3% saved)

simplify73.0ms (0.4%)

Algorithm
egg-herbie
Rules
929×unsub-neg_binary32
384×associate--l-_binary32
362×distribute-rgt-in_binary32
356×distribute-neg-in_binary32
347×distribute-rgt-neg-in_binary32
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02799
16797
220470
368366
4186466
5261766
6462566
7507366

prune7.0ms (0%)

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 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
0.4b
(+.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 242 computations (31.6% saved)

localize98.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series35.0ms (0.2%)

Counts
4 → 72
Calls

4 calls:

13.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)
13.0ms
(*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))
5.0ms
(*.f32 (*.f32 uy 2) (PI.f32))
3.0ms
(sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))

rewrite74.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
319×expm1-udef_binary32
318×log1p-udef_binary32
178×add-sqr-sqrt_binary32
167×log1p-expm1-u_binary32
167×expm1-log1p-u_binary32
Counts
4 → 75
Calls

4 calls:

72.0ms
(sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
72.0ms
(*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))
72.0ms
(*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)
72.0ms
(*.f32 (*.f32 uy 2) (PI.f32))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01747
135547
2434547
3524847
000
100

simplify61.0ms (0.3%)

Algorithm
egg-herbie
Rules
716×distribute-rgt-neg-in_binary32
689×distribute-lft-neg-in_binary32
603×associate-*l*_binary32
508×associate-*r*_binary32
282×fma-def_binary32
Counts
147 → 108
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0891188
12361150
27581023
330401015
449511015

prune394.0ms (2.1%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New11312125
Fresh011
Picked101
Done000
Total11413127
Error
0.2b
Counts
127 → 13
Alt Table
StatusErrorProgram
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi))))
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) yi))))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
0.8b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (pow.f32 (pow.f32 (*.f32 (*.f32 uy 2) (PI.f32)) 3) 1/3)) yi))))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.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)))))))))
0.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi))))
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3))))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 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)))))))))
5.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi))))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
0.4b
(+.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))
6.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi))))
4.0b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3))))))
Compiler

Compiled 7474 to 4576 computations (38.8% saved)

localize121.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi)
0.3b
(*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
1.0b
(pow.f32 (PI.f32) 3)

series145.0ms (0.8%)

Counts
3 → 36
Calls

3 calls:

133.0ms
(*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi)
11.0ms
(*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3))
0.0ms
(pow.f32 (PI.f32) 3)

rewrite61.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
608×log-prod_binary32
256×prod-diff_binary32
211×expm1-udef_binary32
211×log1p-udef_binary32
200×log-pow_binary32
Counts
3 → 63
Calls

3 calls:

59.0ms
(*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi)
59.0ms
(*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3))
59.0ms
(pow.f32 (PI.f32) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01329
126429
2278929
3494929
000
100

simplify73.0ms (0.4%)

Algorithm
egg-herbie
Rules
670×fma-neg_binary32
463×distribute-rgt-neg-in_binary32
452×distribute-lft-neg-in_binary32
441×associate-*l*_binary32
409×associate-*r*_binary32
Counts
99 → 76
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
059596
1142592
2475588
31958576
44019576
54914576
65141576

prune464.0ms (2.5%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New90393
Fresh11112
Picked011
Done000
Total9115106
Error
0.1b
Counts
106 → 15
Alt Table
StatusErrorProgram
5.9b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (cbrt.f32 (*.f32 (pow.f32 (pow.f32 (PI.f32) 3) 3) (pow.f32 (pow.f32 (+.f32 uy uy) 3) 3))))) yi))))
0.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi))))
5.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi))))
9.0b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (PI.f32) (+.f32 uy uy)) 3))) 1))) yi))))
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi))))
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (pow.f32 (sqrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 2)) yi))))
0.4b
(+.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.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) 3) (PI.f32))))) yi))))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.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)))))))))
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3))))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 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 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
6.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi))))
4.0b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3))))))
Compiler

Compiled 6450 to 3909 computations (39.4% saved)

localize90.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series286.0ms (1.5%)

Counts
2 → 72
Calls

2 calls:

279.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)
6.0ms
(*.f32 (*.f32 (-.f32 1 ux) maxCos) ux)

rewrite71.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
347×log1p-udef_binary32
205×associate-*r*_binary32
198×add-sqr-sqrt_binary32
186×log1p-expm1-u_binary32
186×expm1-log1p-u_binary32
Counts
2 → 36
Calls

2 calls:

70.0ms
(*.f32 (*.f32 (-.f32 1 ux) maxCos) ux)
70.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)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01943
140043
2486743
3536343
000
100

simplify103.0ms (0.6%)

Algorithm
egg-herbie
Rules
960×times-frac_binary32
460×associate-*r*_binary32
409×fma-neg_binary32
341×associate-*l*_binary32
251×fma-def_binary32
Counts
108 → 96
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02964555
18844125
234914121
353364121

prune1.5s (8.3%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New2663269
Fresh11213
Picked101
Done011
Total26816284
Error
0.1b
Counts
284 → 16
Alt Table
StatusErrorProgram
5.9b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (cbrt.f32 (*.f32 (pow.f32 (pow.f32 (PI.f32) 3) 3) (pow.f32 (pow.f32 (+.f32 uy uy) 3) 3))))) yi))))
0.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi))))
5.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi))))
9.0b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (PI.f32) (+.f32 uy uy)) 3))) 1))) yi))))
0.4b
(+.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 maxCos ux) (*.f32 maxCos (pow.f32 ux 2))) zi))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) 3) (PI.f32))))) yi))))
3.2b
(+.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 (neg.f32 (*.f32 maxCos (*.f32 ux ux))) zi))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.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)))))))))
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3))))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 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 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi))))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
2.1b
(+.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 2 (*.f32 (*.f32 (PI.f32) (*.f32 uy yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))))) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
6.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi))))
4.0b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3))))))
Compiler

Compiled 22539 to 15092 computations (33% saved)

localize108.0ms (0.6%)

Local error

Found 4 expressions with local error:

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

series9.0ms (0%)

Counts
1 → 15
Calls

1 calls:

9.0ms
(-.f32 (*.f32 maxCos ux) (*.f32 maxCos (pow.f32 ux 2)))

rewrite52.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
873×log1p-expm1-u_binary32
873×expm1-log1p-u_binary32
90×add-sqr-sqrt_binary32
85×add-log-exp_binary32
84×add-cube-cbrt_binary32
Counts
1 → 55
Calls

1 calls:

50.0ms
(-.f32 (*.f32 maxCos ux) (*.f32 maxCos (pow.f32 ux 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
118210
2222110
3526610
000
100

simplify184.0ms (1%)

Algorithm
egg-herbie
Rules
1149×difference-of-squares_binary32
1042×unsub-neg_binary32
752×sub-neg_binary32
527×neg-mul-1_binary32
508×fma-neg_binary32
Counts
70 → 61
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
014142
134142
279142
3181142
4525142
51287142
62641142
74127142
84546142
94858114
102901114
113367114
123150114
134587114
143855114
155179114

prune1.5s (7.9%)

Pruning

16 alts after pruning (14 fresh and 2 done)

PrunedKeptTotal
New2741275
Fresh11314
Picked011
Done011
Total27516291
Error
0.1b
Counts
291 → 16
Alt Table
StatusErrorProgram
3.0b
(+.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 maxCos (*.f32 ux ux)) zi))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (-.f32 (*.f32 yi (fma.f32 2 (*.f32 uy (PI.f32)) (*.f32 4/15 (*.f32 (pow.f32 uy 5) (pow.f32 (PI.f32) 5))))) (*.f32 yi (fma.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)))))))))
5.9b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (cbrt.f32 (*.f32 (pow.f32 (pow.f32 (PI.f32) 3) 3) (pow.f32 (pow.f32 (+.f32 uy uy) 3) 3))))) yi))))
0.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (pow.f32 (PI.f32) 3)))) yi))))
5.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (log.f32 (exp.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) yi))))
9.0b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (*.f32 (PI.f32) (+.f32 uy uy)) 3))) 1))) yi))))
0.4b
(+.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 maxCos ux) (*.f32 maxCos (pow.f32 ux 2))) zi))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (cbrt.f32 (*.f32 (pow.f32 (*.f32 uy 2) 3) (*.f32 (pow.f32 (pow.f32 (cbrt.f32 (PI.f32)) 2) 3) (PI.f32))))) yi))))
0.5b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (pow.f32 (cbrt.f32 (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi)) 3))))
1.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 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 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (*.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) (pow.f32 (cbrt.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2)) yi))))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
2.1b
(+.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 2 (*.f32 (*.f32 (PI.f32) (*.f32 uy yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))) (*.f32 4/3 (*.f32 (*.f32 (pow.f32 (PI.f32) 3) (*.f32 (pow.f32 uy 3) yi)) (sqrt.f32 (-.f32 (+.f32 1 (*.f32 2 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 3)))) (+.f32 (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 2)) (*.f32 (pow.f32 maxCos 2) (pow.f32 ux 4))))))))) (*.f32 (*.f32 (*.f32 (-.f32 1 ux) maxCos) ux) zi))
0.4b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) xi (*.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) yi))))
6.3b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (*.f32 (sin.f32 (log.f32 (pow.f32 (pow.f32 (exp.f32 uy) 2) (PI.f32)))) yi))))
4.0b
(fma.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) zi) (*.f32 (sqrt.f32 (fma.f32 ux (*.f32 ux (*.f32 (*.f32 (-.f32 1 ux) maxCos) (-.f32 (*.f32 ux maxCos) maxCos))) 1)) (fma.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) xi (cbrt.f32 (*.f32 (pow.f32 (sin.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 yi 3))))))
Compiler

Compiled 22823 to 14466 computations (36.6% saved)

regimes7.9s (42.4%)

Accuracy

Total 0.2b remaining (55.9%)

Threshold costs 0.2b (55.9%)

Counts
375 → 1
Compiler

Compiled 288079 to 202171 computations (29.8% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03689
15489
26189
36589
46789
56689

end499.0ms (2.7%)

Compiler

Compiled 1148 to 808 computations (29.6% saved)

Profiling

Loading profile data...