Details

Time bar (total: 6.1s)

analyze90.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.7s (28.5%)

Results
1.7s8256×body128valid
Compiler

Compiled 84 to 64 computations (23.8% saved)

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

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

prune5.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.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)))))
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)))))))
Compiler

Compiled 148 to 113 computations (23.6% saved)

localize54.0ms (0.9%)

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

series84.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
9.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
8.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.7%)

Algorithm
batch-egg-rewrite
Rules
186×add-sqr-sqrt_binary32
180×pow1_binary32
179×*-un-lft-identity_binary32
173×add-log-exp_binary32
172×log1p-expm1-u_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01779
136975
01779
Stop Event
saturated
node limit
Counts
4 → 105

simplify52.0ms (0.9%)

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

prune286.0ms (4.7%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New13615151
Fresh101
Picked101
Done000
Total13815153
Error
0.0b
Counts
153 → 15
Alt Table
StatusErrorProgram
21.5b
(*.f32 (/.f32 1 (+.f32 1 (pow.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c) 3))) (+.f32 1 (-.f32 (pow.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c) 2) (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))))
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.1b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (/.f32 1 (cbrt.f32 (*.f32 (PI.f32) (pow.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)) 2)))) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (cbrt.f32 (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (*.f32 (sqrt.f32 (PI.f32)) 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))))
19.0b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) 3) 1/3)
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)))))
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c) 2))) (-.f32 (-.f32 1 c) (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
0.9b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (cbrt.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))) 3))))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1) (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
1.0b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) 2) -1) (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
12.0b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)) -2)))
12.0b
(sqrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)) -2))
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)))))))
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)))))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))) 2))))
Compiler

Compiled 6154 to 3911 computations (36.4% saved)

localize55.0ms (0.9%)

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

series85.0ms (1.4%)

Counts
4 → 38
Calls

15 calls:

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

rewrite42.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
190×add-sqr-sqrt_binary32
184×pow1_binary32
183×*-un-lft-identity_binary32
177×add-log-exp_binary32
176×log1p-expm1-u_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01773
137673
01779
Stop Event
saturated
node limit
Counts
4 → 131

simplify53.0ms (0.9%)

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

prune204.0ms (3.3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1732175
Fresh7714
Picked101
Done000
Total1819190
Error
0.0b
Counts
190 → 9
Alt Table
StatusErrorProgram
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))))
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (/.f32 1 cosTheta)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (exp.f32 cosTheta) cosTheta))))))
19.0b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) 3) 1/3)
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1) (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
1.0b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) 2) -1) (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
12.0b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)) -2)))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))) 2))))
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c) 2))) (-.f32 (-.f32 1 c) (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
Compiler

Compiled 6423 to 4191 computations (34.8% saved)

localize66.0ms (1.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)))

series79.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
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)))))))
cosTheta
-inf
9.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
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

rewrite38.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
216×add-sqr-sqrt_binary32
210×pow1_binary32
208×*-un-lft-identity_binary32
201×add-cbrt-cube_binary32
201×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02092
143665
020102
Stop Event
saturated
node limit
Counts
3 → 67

simplify58.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
101 → 123

prune199.0ms (3.3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1630163
Fresh088
Picked011
Done000
Total1639172
Error
0.0b
Counts
172 → 9
Alt Table
StatusErrorProgram
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))))
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (/.f32 1 cosTheta)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (exp.f32 cosTheta) cosTheta))))))
19.0b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) 3) 1/3)
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1) (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
1.0b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) 2) -1) (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
12.0b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)) -2)))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))) 2))))
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c) 2))) (-.f32 (-.f32 1 c) (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
Compiler

Compiled 7227 to 4913 computations (32% saved)

localize61.0ms (1%)

Local error

Found 4 expressions with local error:

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

series85.0ms (1.4%)

Counts
4 → 38
Calls

15 calls:

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

rewrite42.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
201×add-sqr-sqrt_binary32
195×pow1_binary32
194×*-un-lft-identity_binary32
187×add-log-exp_binary32
186×log1p-expm1-u_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01879
139978
01888
Stop Event
saturated
node limit
Counts
4 → 100

simplify53.0ms (0.9%)

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
138 → 149

prune177.0ms (2.9%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1454149
Fresh347
Picked011
Done011
Total14810158
Error
0.0b
Counts
158 → 10
Alt Table
StatusErrorProgram
0.7b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (sqrt.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 cosTheta (*.f32 (sqrt.f32 (PI.f32)) (exp.f32 (*.f32 cosTheta cosTheta)))))) 2))))
1.0b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) 2) -1) (pow.f32 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
12.0b
(sqrt.f32 (pow.f32 (+.f32 1 (fma.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 (pow.f32 cosTheta -1) (exp.f32 (*.f32 cosTheta cosTheta))) c)) -2))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1) (pow.f32 (sqrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c))) -1))
18.9b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 1 (fma.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (/.f32 (pow.f32 cosTheta -1) (exp.f32 (*.f32 cosTheta cosTheta))) c))) 3) 1/3)
12.0b
(*.f32 (/.f32 1 (cbrt.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)))) (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c)) -2)))
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)))))))
0.5b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (/.f32 1 cosTheta)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (exp.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))))
13.8b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) c) 2))) (-.f32 (-.f32 1 c) (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
Compiler

Compiled 5366 to 3419 computations (36.3% saved)

regimes2.2s (35.5%)

Accuracy

Total 0.4b remaining (92.2%)

Threshold costs 0.4b (92.2%)

Counts
284 → 1
Compiler

Compiled 49306 to 38443 computations (22% 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

end232.0ms (3.8%)

Stop Event
fuel
Compiler

Compiled 442 to 324 computations (26.7% saved)

Profiling

Loading profile data...