Details

Time bar (total: 13.2s)

analyze101.0ms (0.8%)

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)

sample2.0s (14.9%)

Results
1.9s8256×body128valid
0.0msbody128invalid
Compiler

Compiled 111 to 85 computations (23.4% saved)

simplify44.0ms (0.3%)

Algorithm
egg-herbie
Rules
940×fma-neg_binary32
929×fma-def_binary32
740×times-frac_binary32
329×div-sub_binary32
317×associate-*l*_binary32
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01940
14535
210735
326433
460533
5250033
6375433
7504933

prune5.0ms (0%)

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.4b
(/.f32 1 (+.f32 (+.f32 1 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)

localize61.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.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 (+.f32 1 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 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))

series122.0ms (0.9%)

Counts
4 → 46
Calls

4 calls:

79.0ms
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))))
25.0ms
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
11.0ms
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))
6.0ms
(*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))

rewrite36.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
43×*-un-lft-identity_binary32
36×add-exp-log_binary32
28×add-sqr-sqrt_binary32
23×add-cube-cbrt_binary32
22×add-cbrt-cube_binary32
Counts
4 → 129
Calls

4 calls:

10.0ms
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))))
7.0ms
(/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))
5.0ms
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))
4.0ms
(*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))

simplify132.0ms (1%)

Algorithm
egg-herbie
Rules
396×associate-*r*_binary32
336×associate-*l*_binary32
295×fma-def_binary32
272×unswap-sqr_binary32
226×*-commutative_binary32
Counts
175 → 228
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03916018
110725539
240235523
349865523

prune336.0ms (2.5%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New21513228
Fresh101
Picked101
Done000
Total21713230
Error
0.0b
Counts
230 → 13
Alt Table
StatusErrorProgram
0.9b
(/.f32 (/.f32 1 (*.f32 (cbrt.f32 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))) (cbrt.f32 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))) (cbrt.f32 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
3.1b
(exp.f32 (neg.f32 (log1p.f32 (+.f32 c (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))))))))
1.3b
(fma.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 cosTheta cosTheta)) (*.f32 (-.f32 -1 c) (*.f32 (PI.f32) (*.f32 cosTheta cosTheta))))
0.7b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 (sqrt.f32 cosTheta) (*.f32 (sqrt.f32 cosTheta) (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
20.5b
(*.f32 (/.f32 1 (+.f32 (pow.f32 (+.f32 1 c) 3) (pow.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))) 3))) (+.f32 (*.f32 (+.f32 1 c) (+.f32 1 c)) (-.f32 (*.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))) (*.f32 (+.f32 1 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 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
0.8b
(*.f32 (sqrt.f32 (/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))))) (sqrt.f32 (/.f32 1 (+.f32 (+.f32 1 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 1 (+.f32 (+.f32 1 c) (/.f32 1 (/.f32 (sqrt.f32 (PI.f32)) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))))))))
0.9b
(/.f32 1 (+.f32 (+.f32 1 c) (*.f32 (*.f32 (cbrt.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))) (cbrt.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))) (cbrt.f32 (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))))))
0.5b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (sqrt.f32 (cbrt.f32 (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.6b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) cosTheta (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 3)) 5/2 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (fma.f32 2 (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 3) c)) (fma.f32 3 (*.f32 (pow.f32 (PI.f32) 3/2) (pow.f32 cosTheta 4)) (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (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 3 (*.f32 (*.f32 c c) (pow.f32 cosTheta 4))) (*.f32 6 (*.f32 c (pow.f32 cosTheta 4))))))))))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (fma.f32 3 (*.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2))) (fma.f32 6 (*.f32 (PI.f32) (*.f32 c (pow.f32 cosTheta 4))) (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c)))) (+.f32 (*.f32 (pow.f32 cosTheta 4) (+.f32 (pow.f32 (PI.f32) 2) (*.f32 (PI.f32) 6))) (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (*.f32 3 c)))))))))
14.2b
(*.f32 (/.f32 1 (-.f32 (*.f32 (+.f32 1 c) (+.f32 1 c)) (/.f32 (fma.f32 cosTheta -2 1) (*.f32 (PI.f32) (*.f32 (*.f32 cosTheta cosTheta) (pow.f32 (exp.f32 (*.f32 cosTheta cosTheta)) 2)))))) (-.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))))
1.0b
(*.f32 (*.f32 (cbrt.f32 (/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))))) (cbrt.f32 (/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))) (cbrt.f32 (/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta))))))))
Compiler

Compiled 9466 to 5399 computations (43% saved)

localize128.0ms (1%)

Local error

Found 4 expressions with local error:

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

series2.6s (19.5%)

Counts
3 → 48
Calls

3 calls:

2.1s
(*.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
508.0ms
(/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1))))
9.0ms
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))))

rewrite77.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
105×add-exp-log_binary32
75×prod-exp_binary32
42×add-cbrt-cube_binary32
23×cbrt-unprod_binary32
20×*-un-lft-identity_binary32
Counts
3 → 120
Calls

3 calls:

16.0ms
(*.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
5.0ms
(*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))))
2.0ms
(/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1))))

simplify327.0ms (2.5%)

Algorithm
egg-herbie
Rules
407×*-commutative_binary32
346×+-commutative_binary32
309×associate-+r+_binary32
249×fma-def_binary32
178×associate-*r*_binary32
Counts
168 → 228
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0112521034
1373618886
2495918886
3496218886

prune855.0ms (6.5%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2683271
Fresh8412
Picked101
Done000
Total2777284
Error
0b
Counts
284 → 7
Alt Table
StatusErrorProgram
0.4b
(*.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))) (sqrt.f32 (cbrt.f32 (PI.f32)))))))
1.3b
(fma.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 cosTheta cosTheta)) (*.f32 (-.f32 -1 c) (*.f32 (PI.f32) (*.f32 cosTheta cosTheta))))
0.6b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) cosTheta (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 3)) 5/2 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (fma.f32 2 (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 3) c)) (fma.f32 3 (*.f32 (pow.f32 (PI.f32) 3/2) (pow.f32 cosTheta 4)) (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (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 3 (*.f32 (*.f32 c c) (pow.f32 cosTheta 4))) (*.f32 6 (*.f32 c (pow.f32 cosTheta 4))))))))))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (fma.f32 3 (*.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2))) (fma.f32 6 (*.f32 (PI.f32) (*.f32 c (pow.f32 cosTheta 4))) (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c)))) (+.f32 (*.f32 (pow.f32 cosTheta 4) (+.f32 (pow.f32 (PI.f32) 2) (*.f32 (PI.f32) 6))) (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (*.f32 3 c)))))))))
0.4b
(*.f32 (expm1.f32 (log1p.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
0.4b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 1 (/.f32 (sqrt.f32 (PI.f32)) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))))))))
0.5b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (sqrt.f32 (cbrt.f32 (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.7b
(*.f32 (log.f32 (exp.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
Compiler

Compiled 30862 to 18459 computations (40.2% saved)

localize133.0ms (1%)

Local error

Found 4 expressions with local error:

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

series503.0ms (3.8%)

Counts
1 → 18
Calls

1 calls:

502.0ms
(expm1.f32 (log1p.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1))))))

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary32
add-sqr-sqrt_binary32
add-cube-cbrt_binary32
add-cbrt-cube_binary32
add-exp-log_binary32
Counts
1 → 11
Calls

1 calls:

0.0ms
(expm1.f32 (log1p.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1))))))

simplify107.0ms (0.8%)

Algorithm
egg-herbie
Rules
430×fma-def_binary32
367×times-frac_binary32
346×associate-*r*_binary32
323×associate-/r*_binary32
279×associate-*l*_binary32
Counts
29 → 45
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04185490
113885003
249995003
350575003

prune590.0ms (4.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1980198
Fresh066
Picked011
Done000
Total1987205
Error
0b
Counts
205 → 7
Alt Table
StatusErrorProgram
0.4b
(*.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))) (sqrt.f32 (cbrt.f32 (PI.f32)))))))
1.3b
(fma.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 cosTheta cosTheta)) (*.f32 (-.f32 -1 c) (*.f32 (PI.f32) (*.f32 cosTheta cosTheta))))
0.6b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) cosTheta (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 3)) 5/2 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (fma.f32 2 (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 3) c)) (fma.f32 3 (*.f32 (pow.f32 (PI.f32) 3/2) (pow.f32 cosTheta 4)) (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (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 3 (*.f32 (*.f32 c c) (pow.f32 cosTheta 4))) (*.f32 6 (*.f32 c (pow.f32 cosTheta 4))))))))))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (fma.f32 3 (*.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2))) (fma.f32 6 (*.f32 (PI.f32) (*.f32 c (pow.f32 cosTheta 4))) (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c)))) (+.f32 (*.f32 (pow.f32 cosTheta 4) (+.f32 (pow.f32 (PI.f32) 2) (*.f32 (PI.f32) 6))) (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (*.f32 3 c)))))))))
0.4b
(*.f32 (expm1.f32 (log1p.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
0.4b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 1 (/.f32 (sqrt.f32 (PI.f32)) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))))))))
0.5b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (sqrt.f32 (cbrt.f32 (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.7b
(*.f32 (log.f32 (exp.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
Compiler

Compiled 22063 to 13368 computations (39.4% saved)

localize126.0ms (1%)

Local error

Found 4 expressions with local error:

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

series154.0ms (1.2%)

Counts
2 → 24
Calls

2 calls:

142.0ms
(*.f32 (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))) (sqrt.f32 (cbrt.f32 (PI.f32))))
12.0ms
(*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))) (sqrt.f32 (cbrt.f32 (PI.f32)))))

rewrite20.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
16×add-cbrt-cube_binary32
16×pow1_binary32
14×add-exp-log_binary32
10×associate-*r*_binary32
cbrt-unprod_binary32
Counts
2 → 50
Calls

2 calls:

11.0ms
(*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))) (sqrt.f32 (cbrt.f32 (PI.f32)))))
6.0ms
(*.f32 (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))) (sqrt.f32 (cbrt.f32 (PI.f32))))

simplify78.0ms (0.6%)

Algorithm
egg-herbie
Rules
665×fma-def_binary32
540×distribute-rgt-in_binary32
510×unswap-sqr_binary32
441×*-commutative_binary32
230×sqr-pow_binary32
Counts
74 → 80
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01211736
13181387
210091358
318771321
437901235
549831235

prune481.0ms (3.6%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1900190
Fresh055
Picked011
Done011
Total1907197
Error
0b
Counts
197 → 7
Alt Table
StatusErrorProgram
0.4b
(*.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))) (sqrt.f32 (cbrt.f32 (PI.f32)))))))
1.3b
(fma.f32 (sqrt.f32 (PI.f32)) (+.f32 cosTheta (*.f32 cosTheta cosTheta)) (*.f32 (-.f32 -1 c) (*.f32 (PI.f32) (*.f32 cosTheta cosTheta))))
0.6b
(-.f32 (fma.f32 (sqrt.f32 (PI.f32)) cosTheta (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 3)) 5/2 (fma.f32 7/2 (*.f32 (sqrt.f32 (PI.f32)) (pow.f32 cosTheta 4)) (fma.f32 2 (*.f32 (pow.f32 (PI.f32) 3/2) (*.f32 (pow.f32 cosTheta 3) c)) (fma.f32 3 (*.f32 (pow.f32 (PI.f32) 3/2) (pow.f32 cosTheta 4)) (fma.f32 (pow.f32 cosTheta 3) (pow.f32 (PI.f32) 3/2) (fma.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta cosTheta) (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 3 (*.f32 (*.f32 c c) (pow.f32 cosTheta 4))) (*.f32 6 (*.f32 c (pow.f32 cosTheta 4))))))))))))) (fma.f32 c (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (fma.f32 3 (*.f32 (*.f32 c c) (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2))) (fma.f32 6 (*.f32 (PI.f32) (*.f32 c (pow.f32 cosTheta 4))) (+.f32 (+.f32 (*.f32 (PI.f32) (*.f32 cosTheta cosTheta)) (*.f32 (*.f32 (PI.f32) (pow.f32 cosTheta 3)) (+.f32 2 (*.f32 2 c)))) (+.f32 (*.f32 (pow.f32 cosTheta 4) (+.f32 (pow.f32 (PI.f32) 2) (*.f32 (PI.f32) 6))) (*.f32 (*.f32 (pow.f32 cosTheta 4) (pow.f32 (PI.f32) 2)) (+.f32 (pow.f32 c 3) (*.f32 3 c)))))))))
0.4b
(*.f32 (expm1.f32 (log1p.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
0.4b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 1 (/.f32 (sqrt.f32 (PI.f32)) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta))))))))
0.5b
(/.f32 1 (+.f32 (+.f32 1 c) (/.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (*.f32 (sqrt.f32 (*.f32 (cbrt.f32 (PI.f32)) (cbrt.f32 (PI.f32)))) (*.f32 (sqrt.f32 (cbrt.f32 (PI.f32))) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))))
0.7b
(*.f32 (log.f32 (exp.f32 (/.f32 1 (fma.f32 (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (exp.f32 (*.f32 cosTheta cosTheta)))) (+.f32 1 (pow.f32 c 3)) (*.f32 (sqrt.f32 (fma.f32 cosTheta -2 1)) (fma.f32 c (+.f32 c -1) 1)))))) (*.f32 (+.f32 (*.f32 1 1) (-.f32 (*.f32 c c) (*.f32 1 c))) (*.f32 (sqrt.f32 (PI.f32)) (*.f32 cosTheta (pow.f32 (exp.f32 cosTheta) cosTheta)))))
Compiler

Compiled 17811 to 9423 computations (47.1% saved)

regimes4.0s (30.4%)

Accuracy

Total 0.4b remaining (91.4%)

Threshold costs 0.4b (91.4%)

Counts
378 → 1
Compiler

Compiled 129588 to 88138 computations (32% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02572
13372
23272

end239.0ms (1.8%)

Compiler

Compiled 504 to 338 computations (32.9% saved)

Profiling

Loading profile data...