Details

Time bar (total: 6.9s)

analyze97.0ms (1.4%)

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.9s (27.5%)

Results
1.8s8256×body128valid
Compiler

Compiled 111 to 85 computations (23.4% saved)

simplify24.0ms (0.3%)

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.4b
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)

localize57.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.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.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.4b
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))

series96.0ms (1.4%)

Counts
4 → 46
Calls

4 calls:

61.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)))))))
21.0ms
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
9.0ms
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))
5.0ms
(*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))

rewrite74.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
317×log1p-udef_binary32
180×add-sqr-sqrt_binary32
172×log1p-expm1-u_binary32
172×expm1-log1p-u_binary32
170×add-cbrt-cube_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01781
137277
2500077
Stop Event
node limit
Counts
4 → 97
Calls

4 calls:

72.0ms
(*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))
72.0ms
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
72.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)))))))
72.0ms
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))

simplify52.0ms (0.8%)

Algorithm
egg-herbie
Rules
582×times-frac_binary32
316×cancel-sign-sub-inv_binary32
254×fma-def_binary32
220×associate-*r*_binary32
183×associate-+r+_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02122362
17032228
227672103
Stop Event
node limit
Counts
143 → 146

prune209.0ms (3%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New13412146
Fresh101
Picked101
Done000
Total13612148
Error
0.0b
Counts
148 → 12
Alt Table
StatusErrorProgram
0.7b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))))))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (/.f32 1 (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32)))))) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32))))))))))
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))))
13.7b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))) (-.f32 1 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta))))
0.6b
(+.f32 (*.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 5/2 (pow.f32 cosTheta 3)))) (-.f32 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (+.f32 (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (fma.f32 (*.f32 (pow.f32 cosTheta 3) (*.f32 c c)) (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 c c)) (*.f32 c 6))))))) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 (pow.f32 cosTheta 3) c)) (*.f32 3 (pow.f32 cosTheta 4)))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (+.f32 (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 2 (*.f32 (pow.f32 cosTheta 3) (*.f32 (+.f32 1 c) (PI.f32))))) (+.f32 (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (+.f32 (*.f32 3 c) 1))) (*.f32 (PI.f32) (*.f32 (pow.f32 cosTheta 4) 6)))) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 (*.f32 c c) (pow.f32 (PI.f32) 2))) (*.f32 6 (*.f32 (PI.f32) c))))))))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1) (pow.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1))
0.9b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) 2) -1) (pow.f32 (cbrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 3))))))
0.7b
(pow.f32 (pow.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c)) -1/2) 2)
1.0b
(pow.f32 (/.f32 1 (cbrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c)))) 3)
18.3b
(pow.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) (+.f32 1 c))) 3) 1/3)
12.2b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 (PI.f32) (pow.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)) 2)))))))
Compiler

Compiled 5864 to 3831 computations (34.7% saved)

localize289.0ms (4.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f32 (PI.f32) c)
0.4b
(*.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 5/2 (pow.f32 cosTheta 3))))
1.0b
(pow.f32 (PI.f32) 2)
1.0b
(pow.f32 (PI.f32) 3/2)

series9.0ms (0.1%)

Counts
4 → 24
Calls

4 calls:

6.0ms
(*.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 5/2 (pow.f32 cosTheta 3))))
3.0ms
(*.f32 (PI.f32) c)
0.0ms
(pow.f32 (PI.f32) 3/2)
0.0ms
(pow.f32 (PI.f32) 2)

rewrite54.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
265×expm1-udef_binary32
265×log1p-udef_binary32
174×fma-neg_binary32
157×log1p-expm1-u_binary32
157×expm1-log1p-u_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01631
134529
2406929
Stop Event
node limit
Counts
4 → 79
Calls

4 calls:

52.0ms
(*.f32 (PI.f32) c)
52.0ms
(*.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 5/2 (pow.f32 cosTheta 3))))
52.0ms
(pow.f32 (PI.f32) 2)
52.0ms
(pow.f32 (PI.f32) 3/2)

simplify62.0ms (0.9%)

Algorithm
egg-herbie
Rules
818×unswap-sqr_binary32
372×sqr-pow_binary32
301×*-commutative_binary32
296×fma-def_binary32
283×cube-prod_binary32
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
013273
129273
261237
3156219
4355219
5878219
61176219
71687219
82974219
93075219
103234219
113443219
123746219
134174219
144738219
Stop Event
node limit
Counts
103 → 86

prune658.0ms (9.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1640164
Fresh01111
Picked011
Done000
Total16412176
Error
0.0b
Counts
176 → 12
Alt Table
StatusErrorProgram
0.7b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))))))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (/.f32 1 (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32)))))) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32))))))))))
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))))
13.7b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))) (-.f32 1 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta))))
0.6b
(+.f32 (*.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 5/2 (pow.f32 cosTheta 3)))) (-.f32 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (+.f32 (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (fma.f32 (*.f32 (pow.f32 cosTheta 3) (*.f32 c c)) (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 c c)) (*.f32 c 6))))))) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 (pow.f32 cosTheta 3) c)) (*.f32 3 (pow.f32 cosTheta 4)))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (+.f32 (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 2 (*.f32 (pow.f32 cosTheta 3) (*.f32 (+.f32 1 c) (PI.f32))))) (+.f32 (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (+.f32 (*.f32 3 c) 1))) (*.f32 (PI.f32) (*.f32 (pow.f32 cosTheta 4) 6)))) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 (*.f32 c c) (pow.f32 (PI.f32) 2))) (*.f32 6 (*.f32 (PI.f32) c))))))))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1) (pow.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1))
0.9b
(*.f32 (pow.f32 (pow.f32 (cbrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) 2) -1) (pow.f32 (cbrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 3))))))
0.7b
(pow.f32 (pow.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c)) -1/2) 2)
1.0b
(pow.f32 (/.f32 1 (cbrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c)))) 3)
18.3b
(pow.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) (+.f32 1 c))) 3) 1/3)
12.2b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 (PI.f32) (pow.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)) 2)))))))
Compiler

Compiled 25912 to 16120 computations (37.8% saved)

localize65.0ms (0.9%)

Local error

Found 4 expressions with local error:

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

series180.0ms (2.6%)

Counts
4 → 29
Calls

4 calls:

126.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))))))
29.0ms
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2)))
14.0ms
(pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2)
12.0ms
(*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))

rewrite42.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
193×add-sqr-sqrt_binary32
187×log1p-expm1-u_binary32
187×expm1-log1p-u_binary32
183×add-cbrt-cube_binary32
181×add-log-exp_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02081
143277
Stop Event
node limit
Counts
4 → 112
Calls

4 calls:

38.0ms
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2)))
38.0ms
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))))))
38.0ms
(*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))
38.0ms
(pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2)

simplify48.0ms (0.7%)

Algorithm
egg-herbie
Rules
582×times-frac_binary32
316×cancel-sign-sub-inv_binary32
240×fma-def_binary32
218×associate-*r*_binary32
174×associate-+r+_binary32
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02052180
16822046
227081927
Stop Event
node limit
Counts
141 → 152

prune173.0ms (2.5%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New1484152
Fresh5510
Picked011
Done011
Total15311164
Error
0.0b
Counts
164 → 11
Alt Table
StatusErrorProgram
0.7b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))))))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (/.f32 1 (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32)))))) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32))))))))))
13.7b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))) (-.f32 1 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta))))
0.6b
(+.f32 (*.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 5/2 (pow.f32 cosTheta 3)))) (-.f32 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (+.f32 (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (fma.f32 (*.f32 (pow.f32 cosTheta 3) (*.f32 c c)) (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 c c)) (*.f32 c 6))))))) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 (pow.f32 cosTheta 3) c)) (*.f32 3 (pow.f32 cosTheta 4)))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (+.f32 (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 2 (*.f32 (pow.f32 cosTheta 3) (*.f32 (+.f32 1 c) (PI.f32))))) (+.f32 (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (+.f32 (*.f32 3 c) 1))) (*.f32 (PI.f32) (*.f32 (pow.f32 cosTheta 4) 6)))) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 (*.f32 c c) (pow.f32 (PI.f32) 2))) (*.f32 6 (*.f32 (PI.f32) c))))))))
0.8b
(*.f32 (pow.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1) (pow.f32 (sqrt.f32 (+.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta) (+.f32 1 c))) -1))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (cbrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 3))))))
0.7b
(pow.f32 (pow.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) -1/2) 2)
1.0b
(pow.f32 (/.f32 1 (cbrt.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))))) 3)
18.3b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta)))) 3) 1/3)
0.9b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (cbrt.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) 3))))
12.2b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 (PI.f32) (pow.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)) 2)))))))
Compiler

Compiled 5866 to 3716 computations (36.7% saved)

localize60.0ms (0.9%)

Local error

Found 4 expressions with local error:

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

series247.0ms (3.6%)

Counts
4 → 44
Calls

4 calls:

131.0ms
(pow.f32 (pow.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) -1/2) 2)
88.0ms
(pow.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) -1/2)
16.0ms
(/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta)
11.0ms
(sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))

rewrite39.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
203×add-sqr-sqrt_binary32
198×log1p-expm1-u_binary32
198×expm1-log1p-u_binary32
193×add-cbrt-cube_binary32
191×add-log-exp_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01987
142887
Stop Event
node limit
Counts
4 → 90
Calls

4 calls:

37.0ms
(pow.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) -1/2)
37.0ms
(pow.f32 (pow.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) -1/2) 2)
37.0ms
(/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta)
37.0ms
(sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32)))

simplify80.0ms (1.2%)

Algorithm
egg-herbie
Rules
623×fma-def_binary32
582×associate-*r*_binary32
405×associate-*l*_binary32
357×associate-/r*_binary32
191×*-commutative_binary32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05006606
117106090
Stop Event
node limit
Counts
134 → 170

prune286.0ms (4.1%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New1673170
Fresh268
Picked101
Done022
Total17011181
Error
0.0b
Counts
181 → 11
Alt Table
StatusErrorProgram
0.7b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 (sqrt.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))) 2))))))
0.8b
(/.f32 1 (+.f32 1 (+.f32 c (*.f32 (/.f32 1 (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32)))))) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 cosTheta (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) (sqrt.f32 (PI.f32))))))))))
1.0b
(pow.f32 (/.f32 1 (cbrt.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))))) 3)
0.7b
(pow.f32 (fabs.f32 (pow.f32 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) cosTheta)))) -1/2)) 2)
13.7b
(*.f32 (/.f32 1 (-.f32 1 (pow.f32 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta)) 2))) (-.f32 1 (+.f32 c (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (pow.f32 (exp.f32 cosTheta) cosTheta)) cosTheta))))
0.6b
(+.f32 (*.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 5/2 (pow.f32 cosTheta 3)))) (-.f32 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (+.f32 (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (fma.f32 (*.f32 (pow.f32 cosTheta 3) (*.f32 c c)) (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 c c)) (*.f32 c 6))))))) (*.f32 (pow.f32 (PI.f32) 3/2) (+.f32 (*.f32 2 (*.f32 (pow.f32 cosTheta 3) c)) (*.f32 3 (pow.f32 cosTheta 4)))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (+.f32 (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 2 (*.f32 (pow.f32 cosTheta 3) (*.f32 (+.f32 1 c) (PI.f32))))) (+.f32 (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (+.f32 (*.f32 3 c) 1))) (*.f32 (PI.f32) (*.f32 (pow.f32 cosTheta 4) 6)))) (*.f32 (pow.f32 cosTheta 4) (+.f32 (*.f32 3 (*.f32 (*.f32 c c) (pow.f32 (PI.f32) 2))) (*.f32 6 (*.f32 (PI.f32) c))))))))
12.2b
(*.f32 (cbrt.f32 (pow.f32 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) cosTheta)))) -2)) (cbrt.f32 (/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (*.f32 (pow.f32 (exp.f32 cosTheta) cosTheta) cosTheta)))))))
0.7b
(pow.f32 (pow.f32 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (*.f32 (cbrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) (cbrt.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) -1/2) 2)
18.3b
(pow.f32 (pow.f32 (/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta)))) 3) 1/3)
0.9b
(/.f32 1 (+.f32 1 (+.f32 c (pow.f32 (cbrt.f32 (/.f32 (/.f32 (sqrt.f32 (/.f32 (fma.f32 cosTheta -2 1) (PI.f32))) cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta))) 3))))
12.2b
(/.f32 1 (+.f32 1 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (sqrt.f32 (*.f32 (PI.f32) (pow.f32 (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)) 2)))))))
Compiler

Compiled 11160 to 7991 computations (28.4% saved)

regimes1.8s (25.8%)

Accuracy

Total 0.4b remaining (89.2%)

Threshold costs 0.4b (89.2%)

Counts
224 → 1
Compiler

Compiled 44554 to 34338 computations (22.9% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01836
12436
Stop Event
saturated

end329.0ms (4.7%)

Compiler

Compiled 511 to 371 computations (27.4% saved)

Profiling

Loading profile data...