Details

Time bar (total: 9.7s)

analyze669.0ms (6.9%)

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

Results
2.0s8256×body128valid
Compiler

Compiled 102 to 74 computations (27.5% saved)

preprocess27.0ms (0.3%)

Algorithm
egg-herbie
Rules
470×associate--r+_binary32
333×distribute-neg-in_binary32
293×associate-*l*_binary32
285×associate-*r*_binary32
247×cancel-sign-sub-inv_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043156
1127140
2449140
32073132
033
Stop Event
saturated
node limit
Compiler

Compiled 28 to 20 computations (28.6% saved)

simplify22.0ms (0.2%)

Algorithm
egg-herbie
Rules
674×fma-neg_binary32
316×distribute-rgt-in_binary32
280×unsub-neg_binary32
279×distribute-lft-in_binary32
275×distribute-neg-in_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01739
14135
212835
356433
4296833
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 156 to 110 computations (29.5% saved)

localize45.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f32 (cos.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.3b
(*.f32 (*.f32 uy 2) (PI.f32))
0.4b
(*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)))
13.0b
(-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))

series189.0ms (2%)

Counts
4 → 92
Calls

24 calls:

27.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
ux
0
27.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
maxCos
0
19.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
maxCos
inf
17.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
uy
inf
16.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
uy
-inf

rewrite40.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
185×add-sqr-sqrt_binary32
177×log1p-expm1-u_binary32
177×expm1-log1p-u_binary32
176×add-cbrt-cube_binary32
172×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01767
137361
Stop Event
node limit
Counts
4 → 94

simplify113.0ms (1.2%)

Algorithm
egg-herbie
Rules
410×fma-neg_binary32
377×sub-neg_binary32
318×fma-def_binary32
269×associate-*r*_binary32
250×associate-*l*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02896589
110505816
243925810
Stop Event
node limit
Counts
186 → 177

prune274.0ms (2.8%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New16710177
Fresh101
Picked101
Done000
Total16910179
Error
0.2b
Counts
179 → 10
Alt Table
StatusErrorProgram
1.0b
(fma.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos (*.f32 (*.f32 ux ux) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))))) (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (-.f32 (sqrt.f32 (*.f32 ux (-.f32 2 ux))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))))))))
13.2b
(*.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 2 (*.f32 uy (PI.f32)))) 3)) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
13.2b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) 3) (pow.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)) 3/2)))
1.0b
(-.f32 (+.f32 (*.f32 (*.f32 (cos.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 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (sqrt.f32 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))) (*.f32 (*.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32)))) (*.f32 maxCos ux)) (sqrt.f32 (/.f32 1 (-.f32 (*.f32 2 ux) (pow.f32 ux 2))))))
13.2b
(log.f32 (pow.f32 (exp.f32 (cos.f32 (*.f32 2 (*.f32 uy (PI.f32))))) (sqrt.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)))))
0.3b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.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))))))
1.8b
(-.f32 (+.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)))))) (*.f32 2/3 (*.f32 (*.f32 (pow.f32 uy 4) (pow.f32 (PI.f32) 4)) (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))))))))) (+.f32 (*.f32 4/45 (*.f32 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6)) (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)))))))) (*.f32 2 (*.f32 (*.f32 (pow.f32 (PI.f32) 2) (pow.f32 uy 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))))))))))
1.8b
(-.f32 (*.f32 (+.f32 (*.f32 (*.f32 2/3 (pow.f32 (PI.f32) 4)) (pow.f32 uy 4)) 1) (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 (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 (*.f32 2 (pow.f32 (PI.f32) 2)) (*.f32 uy uy)) (*.f32 4/45 (*.f32 (pow.f32 uy 6) (pow.f32 (PI.f32) 6))))))
7.7b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (*.f32 (-.f32 2 (*.f32 2 maxCos)) ux)))
12.7b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (sqrt.f32 (-.f32 1 (-.f32 (fma.f32 ux ux (fma.f32 (*.f32 2 maxCos) ux 1)) (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux))))))
Compiler

Compiled 10257 to 6863 computations (33.1% saved)

localize70.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))
0.1b
(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)))))
0.1b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.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))))))
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))

series203.0ms (2.1%)

Counts
3 → 64
Calls

18 calls:

28.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.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))))))
ux
0
17.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.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))))))
maxCos
-inf
17.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.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))))))
uy
-inf
16.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.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))))))
maxCos
inf
16.0ms
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.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))))))
uy
inf

rewrite37.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
217×add-sqr-sqrt_binary32
205×log1p-expm1-u_binary32
205×expm1-log1p-u_binary32
204×add-cbrt-cube_binary32
200×add-log-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02188
144188
Stop Event
node limit
Counts
3 → 54

simplify96.0ms (1%)

Algorithm
egg-herbie
Rules
562×fma-def_binary32
414×associate-*r*_binary32
301×associate-*l*_binary32
230×times-frac_binary32
202×associate--l+_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04267926
116017037
Stop Event
node limit
Counts
118 → 153

prune374.0ms (3.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New15712169
Fresh909
Picked101
Done000
Total16712179
Error
0.1b
Counts
179 → 12
Alt Table
StatusErrorProgram
0.3b
(*.f32 (cos.f32 (expm1.f32 (log1p.f32 (*.f32 2 (*.f32 uy (PI.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))))))
1.1b
(*.f32 (cos.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 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1))))))))
0.4b
(*.f32 (pow.f32 (cbrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 3) (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))))))
0.5b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (pow.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) 2) (pow.f32 (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1))) 2))) (sqrt.f32 (fma.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))))
1.0b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (*.f32 ux (-.f32 2 ux)))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)))
0.6b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 1/4) 2))
0.8b
(*.f32 (cos.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 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))) 3))
1.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) 1/3))
1.5b
(*.f32 (pow.f32 (sqrt.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32)))) 2) (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))))))
0.4b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) 1) (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))))))
0.3b
(*.f32 (cos.f32 (pow.f32 (sqrt.f32 (*.f32 2 (*.f32 uy (PI.f32)))) 2)) (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))))))
Compiler

Compiled 13221 to 8419 computations (36.3% saved)

localize92.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))
0.3b
(pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)
0.3b
(*.f32 (*.f32 uy 2) (PI.f32))
0.4b
(pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)

series735.0ms (7.6%)

Counts
3 → 68
Calls

18 calls:

143.0ms
(*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))
ux
0
112.0ms
(*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))
ux
inf
109.0ms
(*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))
ux
-inf
88.0ms
(*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))
maxCos
0
58.0ms
(*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2))
uy
-inf

rewrite39.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
226×add-sqr-sqrt_binary32
216×log1p-expm1-u_binary32
216×expm1-log1p-u_binary32
213×add-cbrt-cube_binary32
209×add-cube-cbrt_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02396
147596
Stop Event
node limit
Counts
3 → 45

simplify221.0ms (2.3%)

Algorithm
egg-herbie
Rules
459×*-commutative_binary32
403×times-frac_binary32
305×+-commutative_binary32
286×fma-def_binary32
250×associate-+r+_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0105119289
1376718809
Stop Event
node limit
Counts
113 → 152

prune788.0ms (8.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1644168
Fresh4711
Picked101
Done000
Total16911180
Error
0.0b
Counts
180 → 11
Alt Table
StatusErrorProgram
0.6b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 1/4) 2))
8.3b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (exp.f32 3/2) (+.f32 (log.f32 (+.f32 2 (*.f32 -2 maxCos))) (log.f32 ux)))))
0.3b
(*.f32 (cos.f32 (pow.f32 (sqrt.f32 (*.f32 2 (*.f32 uy (PI.f32)))) 2)) (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))))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 2 (*.f32 uy (PI.f32)))) 3)) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)))
1.1b
(*.f32 (cos.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 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1))))))))
1.0b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (*.f32 ux (-.f32 2 ux)))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))
0.8b
(*.f32 (cos.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 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))) 3))
1.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) 1/3))
0.3b
(cbrt.f32 (*.f32 (log1p.f32 (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)))
0.4b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) 1) (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))))))
0.4b
(cbrt.f32 (*.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) 1) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)))
Compiler

Compiled 28369 to 20265 computations (28.6% saved)

localize93.0ms (1%)

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

series13.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

5.0ms
(expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))
uy
0
4.0ms
(expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))
uy
inf
4.0ms
(expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))
uy
-inf

rewrite41.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
798×log1p-expm1-u_binary32
798×expm1-log1p-u_binary32
441×prod-diff_binary32
95×add-sqr-sqrt_binary32
88×add-cbrt-cube_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01015
120215
2223415
Stop Event
node limit
Counts
1 → 20

simplify35.0ms (0.4%)

Algorithm
egg-herbie
Rules
719×distribute-rgt-neg-in_binary32
530×fma-neg_binary32
471×*-commutative_binary32
284×sub-neg_binary32
249×distribute-lft-neg-in_binary32
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
040258
1114248
2351244
31752236
44344230
Stop Event
node limit
Counts
32 → 30

prune364.0ms (3.8%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1330133
Fresh01010
Picked011
Done000
Total13311144
Error
0.0b
Counts
144 → 11
Alt Table
StatusErrorProgram
0.6b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 1/4) 2))
8.3b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (exp.f32 3/2) (+.f32 (log.f32 (+.f32 2 (*.f32 -2 maxCos))) (log.f32 ux)))))
0.3b
(*.f32 (cos.f32 (pow.f32 (sqrt.f32 (*.f32 2 (*.f32 uy (PI.f32)))) 2)) (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))))))
0.3b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 2 (*.f32 uy (PI.f32)))) 3)) 3) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)))
1.1b
(*.f32 (cos.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 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1))))))))
1.0b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (-.f32 (fma.f32 (*.f32 maxCos (*.f32 ux ux)) (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux)))) (sqrt.f32 (*.f32 ux (-.f32 2 ux)))) (*.f32 maxCos (*.f32 ux (sqrt.f32 (/.f32 1 (*.f32 ux (-.f32 2 ux))))))))
0.8b
(*.f32 (cos.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 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))))) 3))
1.4b
(*.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) (pow.f32 (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2) 1/3))
0.3b
(cbrt.f32 (*.f32 (log1p.f32 (expm1.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)))
0.4b
(*.f32 (-.f32 (exp.f32 (log1p.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))))) 1) (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))))))
0.4b
(cbrt.f32 (*.f32 (-.f32 (exp.f32 (log1p.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3))) 1) (pow.f32 (-.f32 (*.f32 2 (fma.f32 maxCos (*.f32 ux ux) ux)) (fma.f32 2 (*.f32 maxCos ux) (*.f32 (*.f32 ux ux) (fma.f32 maxCos maxCos 1)))) 3/2)))
Compiler

Compiled 11364 to 7832 computations (31.1% saved)

regimes2.8s (29.2%)

Accuracy

Total 0.2b remaining (71.6%)

Threshold costs 0.2b (71.6%)

Counts
169 → 1
Compiler

Compiled 79384 to 57006 computations (28.2% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02451
13451
23851
34051
44151
Stop Event
saturated

end252.0ms (2.6%)

Stop Event
fuel
Compiler

Compiled 480 to 333 computations (30.6% saved)

Profiling

Loading profile data...