Details

Time bar (total: 6.7s)

analyze98.0ms (1.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%12.3%87.7%0
0%12.3%87.7%1
6.2%6.2%87.7%2
6.2%6.2%87.7%3
9.2%3.1%87.7%4
9.2%3.1%87.7%5
10.8%1.5%87.7%6
10.8%1.5%87.7%7
11.5%0.8%87.7%8
11.5%0.8%87.7%9
11.9%0.4%87.7%10
11.9%0.4%87.7%11
12.1%0.2%87.7%12
12.1%0.2%87.7%13
12.1%0.1%87.8%14
Compiler

Compiled 42 to 32 computations (23.8% saved)

sample1.8s (27.5%)

Results
1.8s8256×body128valid
Compiler

Compiled 84 to 64 computations (23.8% saved)

preprocess38.0ms (0.6%)

Algorithm
egg-herbie
Rules
602×div-sub_binary32
562×associate-/l*_binary32
544×fma-def_binary32
329×associate-/r*_binary32
268×fma-neg_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03180
18070
221570
359066
4153466
5406266
022
Stop Event
saturated
node limit
Compiler

Compiled 27 to 21 computations (22.2% saved)

simplify24.0ms (0.4%)

Algorithm
egg-herbie
Rules
929×fma-def_binary32
742×times-frac_binary32
323×fma-neg_binary32
318×associate-*l*_binary32
303×div-sub_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01940
14535
211435
330633
478633
5376333
Stop Event
node limit
Counts
1 → 2

prune6.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.7b
(/.f32 1 (+.f32 (+.f32 1 c) (*.f32 (*.f32 (/.f32 1 (sqrt.f32 (PI.f32))) (/.f32 (sqrt.f32 (-.f32 (-.f32 1 cosTheta) cosTheta)) cosTheta)) (exp.f32 (*.f32 (neg.f32 cosTheta) cosTheta)))))
Compiler

Compiled 148 to 113 computations (23.6% saved)

localize53.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f32 (fma.f32 cosTheta -2 1))
0.3b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.3b
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
0.4b
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))

series92.0ms (1.4%)

Counts
4 → 38
Calls

15 calls:

11.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
cosTheta
-inf
10.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
cosTheta
inf
10.0ms
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
cosTheta
-inf
9.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
c
-inf
9.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
c
inf

rewrite42.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
180×add-sqr-sqrt_binary32
172×log1p-expm1-u_binary32
172×expm1-log1p-u_binary32
170×add-cbrt-cube_binary32
168×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01779
137275
Stop Event
node limit
Counts
4 → 105

simplify54.0ms (0.8%)

Algorithm
egg-herbie
Rules
582×times-frac_binary32
355×cancel-sign-sub-inv_binary32
246×fma-def_binary32
222×associate-*r*_binary32
177×associate-*l*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02122281
17072147
227942133
Stop Event
node limit
Counts
143 → 151

prune221.0ms (3.3%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New13714151
Fresh101
Picked101
Done000
Total13914153
Error
0.0b
Counts
153 → 14
Alt Table
StatusErrorProgram
19.0b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) 3) 1/3)
13.7b
(/.f32 1 (+.f32 1 (+.f32 c (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (*.f32 (PI.f32) (pow.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)) 2)))))))
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c) 2))) (-.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 (sqrt.f32 (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) cosTheta))) 2)))))
21.5b
(*.f32 (/.f32 1 (+.f32 1 (pow.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c) 3))) (-.f32 (+.f32 1 (pow.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c) 2)) (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 (cbrt.f32 (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) cosTheta))) 3)))))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) -1) (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) -1))
0.9b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (cbrt.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 3))))
12.1b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)) -2)))
0.7b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
12.0b
(sqrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)) -2))
1.2b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 cosTheta cosTheta)) (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 3)) 5/2 (fma.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2)) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 (pow.f32 cosTheta 3) c)) (pow.f32 cosTheta 3)))))) (+.f32 (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c))) (*.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (+.f32 1 c))))
1.0b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) 2) -1) (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) -1))
Compiler

Compiled 6078 to 3922 computations (35.5% saved)

localize56.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f32 (fma.f32 cosTheta -2 1) (PI.f32))
0.3b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.6b
(*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
0.8b
(sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))

series94.0ms (1.4%)

Counts
4 → 38
Calls

15 calls:

13.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
cosTheta
inf
11.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
cosTheta
-inf
10.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
c
inf
9.0ms
(*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
cosTheta
-inf
9.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
c
-inf

rewrite44.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01773
137973
Stop Event
node limit
Counts
4 → 131

simplify52.0ms (0.8%)

Algorithm
egg-herbie
Rules
589×times-frac_binary32
363×cancel-sign-sub-inv_binary32
227×fma-def_binary32
216×associate-*r*_binary32
170×associate-*l*_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02022266
16702128
226952114
Stop Event
node limit
Counts
169 → 175

prune219.0ms (3.3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1714175
Fresh8513
Picked101
Done000
Total1809189
Error
0.0b
Counts
189 → 9
Alt Table
StatusErrorProgram
0.7b
(pow.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) c)) -1/2) 2)
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))))
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
1.2b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 cosTheta cosTheta)) (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 3)) 5/2 (fma.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2)) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 (pow.f32 cosTheta 3) c)) (pow.f32 cosTheta 3)))))) (+.f32 (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c))) (*.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (+.f32 1 c))))
18.9b
(pow.f32 (pow.f32 (exp.f32 (neg.f32 (log1p.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) c)))) 3) 1/3)
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c) 2))) (-.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) -1) (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) -1))
12.1b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)) -2)))
Compiler

Compiled 6365 to 4160 computations (34.6% saved)

localize67.0ms (1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.6b
(*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
0.8b
(cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))))
0.8b
(sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))

series84.0ms (1.3%)

Counts
3 → 34
Calls

12 calls:

11.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
cosTheta
inf
11.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
cosTheta
-inf
10.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
c
-inf
10.0ms
(*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
cosTheta
-inf
9.0ms
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
c
inf

rewrite35.0ms (0.5%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
02092
143965
Stop Event
node limit
Counts
3 → 62

simplify62.0ms (0.9%)

Algorithm
egg-herbie
Rules
642×times-frac_binary32
440×cancel-sign-sub-inv_binary32
248×fma-def_binary32
230×associate-*r*_binary32
211×sub-neg_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02472657
17992507
231162493
Stop Event
node limit
Counts
96 → 118

prune200.0ms (3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1580158
Fresh088
Picked011
Done000
Total1589167
Error
0.0b
Counts
167 → 9
Alt Table
StatusErrorProgram
0.7b
(pow.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) c)) -1/2) 2)
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))))
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
1.2b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 cosTheta cosTheta)) (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 3)) 5/2 (fma.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2)) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 (pow.f32 cosTheta 3) c)) (pow.f32 cosTheta 3)))))) (+.f32 (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c))) (*.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (+.f32 1 c))))
18.9b
(pow.f32 (pow.f32 (exp.f32 (neg.f32 (log1p.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) c)))) 3) 1/3)
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c) 2))) (-.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) -1) (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c))) -1))
12.1b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)) -2)))
Compiler

Compiled 7065 to 4823 computations (31.7% saved)

localize53.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1))
0.0b
(*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))
0.3b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))))
0.4b
(/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta))))

series89.0ms (1.3%)

Counts
4 → 38
Calls

15 calls:

11.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))))
cosTheta
-inf
11.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))))
c
-inf
10.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))))
cosTheta
inf
9.0ms
(/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta))))
cosTheta
-inf
9.0ms
(/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta))))
cosTheta
inf

rewrite42.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
195×add-sqr-sqrt_binary32
187×log1p-expm1-u_binary32
187×expm1-log1p-u_binary32
185×add-cbrt-cube_binary32
182×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01988
141078
Stop Event
node limit
Counts
4 → 102

simplify50.0ms (0.8%)

Algorithm
egg-herbie
Rules
582×times-frac_binary32
340×cancel-sign-sub-inv_binary32
240×fma-def_binary32
219×associate-*r*_binary32
175×associate-+r+_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02072264
16902115
227562101
Stop Event
node limit
Counts
140 → 151

prune183.0ms (2.7%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1483151
Fresh347
Picked011
Done011
Total1519160
Error
0.0b
Counts
160 → 9
Alt Table
StatusErrorProgram
0.7b
(pow.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) c)) -1/2) 2)
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (pow.f32 cosTheta -1)) (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))))
1.2b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) (fma.f32 cosTheta cosTheta cosTheta) (fma.f32 5/2 (*.f32 (pow.f32 cosTheta 3) (sqrt.f32 (PI.f32))) (fma.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2)) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 c (pow.f32 cosTheta 3))) (pow.f32 cosTheta 3)))))) (+.f32 (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c))) (*.f32 (*.f32 cosTheta (*.f32 cosTheta (PI.f32))) (+.f32 1 c))))
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (*.f32 (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))) (/.f32 1 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
18.9b
(pow.f32 (pow.f32 (exp.f32 (neg.f32 (log1p.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) c)))) 3) 1/3)
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (fma.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 (/.f32 1 cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta)) c) 2))) (-.f32 1 (fma.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 (/.f32 1 cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta)) c)))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))))
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (/.f32 1 (cbrt.f32 (*.f32 (PI.f32) (pow.f32 (exp.f32 cosTheta) (+.f32 cosTheta cosTheta))))) (/.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) cosTheta) (cbrt.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (exp.f32 cosTheta) cosTheta))))))))
12.1b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) c)) -2)))
Compiler

Compiled 5415 to 3466 computations (36% saved)

regimes2.6s (39.3%)

Accuracy

Total 0.4b remaining (91.4%)

Threshold costs 0.4b (91.4%)

Counts
288 → 1
Compiler

Compiled 49102 to 38149 computations (22.3% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
*-commutative_binary32
1-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01946
12446
Stop Event
saturated

end252.0ms (3.8%)

Stop Event
fuel
Compiler

Compiled 385 to 287 computations (25.5% saved)

Profiling

Loading profile data...