Details

Time bar (total: 9.9s)

analyze638.0ms (6.4%)

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.1s (20.6%)

Results
2.0s8256×body128valid
Compiler

Compiled 102 to 74 computations (27.5% saved)

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

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

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

series201.0ms (2%)

Counts
4 → 92
Calls

24 calls:

31.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
20.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
18.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
18.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
18.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

rewrite41.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
192×add-sqr-sqrt_binary32
187×*-un-lft-identity_binary32
187×pow1_binary32
177×add-cbrt-cube_binary32
177×add-exp-log_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01767
137161
01794
Stop Event
saturated
node limit
Counts
4 → 98

simplify114.0ms (1.1%)

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
190 → 181

prune256.0ms (2.6%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New17110181
Fresh101
Picked101
Done000
Total17310183
Error
0.2b
Counts
183 → 10
Alt Table
StatusErrorProgram
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))))))
13.2b
(*.f32 (cos.f32 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3)) (sqrt.f32 (-.f32 1 (*.f32 (+.f32 (-.f32 1 ux) (*.f32 ux maxCos)) (+.f32 (-.f32 1 ux) (*.f32 ux maxCos))))))
1.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))))))))))
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.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 (*.f32 uy 2) (PI.f32)))) (sqrt.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)))))
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))))))
13.2b
(cbrt.f32 (*.f32 (pow.f32 (cos.f32 (*.f32 (*.f32 uy 2) (PI.f32))) 3) (pow.f32 (-.f32 1 (pow.f32 (fma.f32 ux maxCos (-.f32 1 ux)) 2)) 3/2)))
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)))))))))
Compiler

Compiled 10524 to 7048 computations (33% saved)

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

series233.0ms (2.3%)

Counts
3 → 64
Calls

18 calls:

32.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
18.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
18.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
18.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))))))
maxCos
0

rewrite36.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
224×add-sqr-sqrt_binary32
219×*-un-lft-identity_binary32
219×pow1_binary32
205×add-cbrt-cube_binary32
205×add-exp-log_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02188
144188
02192
Stop Event
saturated
node limit
Counts
3 → 54

simplify94.0ms (0.9%)

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

prune414.0ms (4.2%)

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.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.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
(*.f32 (cos.f32 (pow.f32 (sqrt.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.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)))))))
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))
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.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
(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)))
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.3b
(*.f32 (cos.f32 (expm1.f32 (log1p.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.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 (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))))))
Compiler

Compiled 13221 to 8431 computations (36.2% saved)

localize79.0ms (0.8%)

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)

series819.0ms (8.2%)

Counts
3 → 68
Calls

18 calls:

166.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
138.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
132.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
86.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
44.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

rewrite59.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
233×add-sqr-sqrt_binary32
227×pow1_binary32
225×*-un-lft-identity_binary32
216×add-log-exp_binary32
216×log1p-expm1-u_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02396
147996
02396
Stop Event
saturated
node limit
Counts
3 → 45

simplify226.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

prune728.0ms (7.3%)

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.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.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 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (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)))
0.3b
(*.f32 (cos.f32 (pow.f32 (sqrt.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.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)))
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))))))))
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.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))
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.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 20277 computations (28.5% saved)

localize90.0ms (0.9%)

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
96×add-sqr-sqrt_binary32
92×pow1_binary32
91×*-un-lft-identity_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01015
120615
2223015
01015
Stop Event
saturated
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

prune353.0ms (3.6%)

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.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.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 (pow.f32 (cbrt.f32 (*.f32 (*.f32 uy 2) (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)))
0.3b
(*.f32 (cos.f32 (pow.f32 (sqrt.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.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)))
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))))))))
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.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))
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.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 7844 computations (31% saved)

regimes3.0s (30.1%)

Accuracy

Total 0.2b remaining (71.6%)

Threshold costs 0.2b (71.6%)

Counts
170 → 1
Compiler

Compiled 81771 to 58737 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

end254.0ms (2.6%)

Stop Event
fuel
Compiler

Compiled 480 to 333 computations (30.6% saved)

Profiling

Loading profile data...