Details

Time bar (total: 9.3s)

analyze2.0s (21.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%3%97%0
0%3%97%1
0%3%97%2
0%3%97%3
0%3%97%4
0%3%97%5
0%1.5%98.5%6
0%1.5%98.5%7
0%1.5%98.5%8
0%1.5%98.5%9
0%1.5%98.5%10
0.6%0.9%98.5%11
0.6%0.9%98.5%12
0.6%0.9%98.5%13
0.6%0.9%98.5%14
Compiler

Compiled 69 to 51 computations (26.1% saved)

sample130.0ms (1.4%)

Algorithm
intervals
Symmetry

(sort cosTheta_i cosTheta_O)

(sort sinTheta_i sinTheta_O)

Results
31.0ms256×body128valid
14.0ms262×pre128true
1.0msbody128nan
Compiler

Compiled 104 to 78 computations (25% saved)

simplify43.0ms (0.5%)

Algorithm
egg-herbie
Rules
788×fma-neg_binary32
718×fma-def_binary32
560×exp-diff_binary32
512×exp-sum_binary32
448×sub-neg_binary32
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02235
15333
214531
353229
4211929
5443129
6497529

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.1b
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
0.1b
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 6931/10000) (log.f32 (/.f32 1 (*.f32 2 v)))))
Compiler

Compiled 160 to 112 computations (30% saved)

localize49.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
0.0b
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
0.1b
(exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))
0.1b
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

series207.0ms (2.2%)

Counts
4 → 180
Calls

4 calls:

115.0ms
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
45.0ms
(exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))
36.0ms
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
10.0ms
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

rewrite35.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
44×add-sqr-sqrt_binary32
39×*-un-lft-identity_binary32
35×add-cube-cbrt_binary32
28×exp-sum_binary32
27×prod-diff_binary32
Counts
4 → 123
Calls

4 calls:

15.0ms
(*.f32 (/.f32 1/2 v) (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
4.0ms
(exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))
3.0ms
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
0.0ms
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

simplify152.0ms (1.6%)

Algorithm
egg-herbie
Rules
392×times-frac_binary32
288×associate-/l*_binary32
278×associate-*r*_binary32
275×associate-+r+_binary32
243×fma-def_binary32
Counts
303 → 237
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
044111185
1120310395
2515610395

prune420.0ms (4.5%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New2325237
Fresh101
Picked101
Done000
Total2345239
Error
0.0b
Counts
239 → 5
Alt Table
StatusErrorProgram
2.3b
(*.f32 (/.f32 1/2 v) (*.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (exp.f32 (neg.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))))
0.1b
(exp.f32 (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (E.f32) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
11.0b
(*.f32 (*.f32 1/2 (/.f32 (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) v)) (exp.f32 (fma.f32 (neg.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (*.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))))
0.2b
(*.f32 (/.f32 1/2 v) (cbrt.f32 (pow.f32 (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) 3)))
Compiler

Compiled 11215 to 6472 computations (42.3% saved)

localize54.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
0.1b
(exp.f32 (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))
0.1b
(+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v)))
0.1b
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

series260.0ms (2.8%)

Counts
2 → 120
Calls

2 calls:

207.0ms
(+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v)))
52.0ms
(exp.f32 (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))

rewrite23.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
36×*-un-lft-identity_binary32
20×add-sqr-sqrt_binary32
18×add-cube-cbrt_binary32
14×associate-+l+_binary32
13×associate-+r+_binary32
Counts
2 → 74
Calls

2 calls:

8.0ms
(+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v)))
7.0ms
(exp.f32 (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))

simplify120.0ms (1.3%)

Algorithm
egg-herbie
Rules
469×times-frac_binary32
325×associate-*r*_binary32
273×associate-/l*_binary32
243×associate-/r*_binary32
227×associate-+l+_binary32
Counts
194 → 156
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03978778
112097667
250927667

prune397.0ms (4.3%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2221223
Fresh134
Picked101
Done000
Total2244228
Error
0.0b
Counts
228 → 4
Alt Table
StatusErrorProgram
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (E.f32) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
0.1b
(pow.f32 (E.f32) (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))
11.0b
(*.f32 (*.f32 1/2 (/.f32 (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) v)) (exp.f32 (fma.f32 (neg.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (*.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))))
2.3b
(*.f32 (/.f32 1/2 v) (*.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (exp.f32 (neg.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))))
Compiler

Compiled 10459 to 6284 computations (39.9% saved)

localize84.0ms (0.9%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
0.0b
(pow.f32 (E.f32) (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))
0.1b
(+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v)))
0.1b
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

series58.0ms (0.6%)

Counts
1 → 60
Calls

1 calls:

57.0ms
(pow.f32 (E.f32) (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary32
pow-unpow_binary32
distribute-lft-out_binary32
pow1_binary32
add-sqr-sqrt_binary32
Counts
1 → 27
Calls

1 calls:

7.0ms
(pow.f32 (E.f32) (+.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (log.f32 (/.f32 1/2 v))))

simplify111.0ms (1.2%)

Algorithm
egg-herbie
Rules
468×times-frac_binary32
313×associate-*r*_binary32
268×associate-/l*_binary32
240×associate-/r*_binary32
238×associate-+r+_binary32
Counts
87 → 72
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03065561
19765288
245484904
350464904

prune458.0ms (4.9%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2311232
Fresh033
Picked101
Done000
Total2324236
Error
0.0b
Counts
236 → 4
Alt Table
StatusErrorProgram
11.0b
(*.f32 (*.f32 1/2 (/.f32 (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) v)) (exp.f32 (fma.f32 (neg.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (*.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))))
0.1b
(pow.f32 (E.f32) (+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v))))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (E.f32) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
2.3b
(*.f32 (/.f32 1/2 v) (*.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (exp.f32 (neg.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))))
Compiler

Compiled 10923 to 6385 computations (41.5% saved)

localize73.0ms (0.8%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f32 (E.f32) (+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v))))
0.0b
(+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))
0.1b
(+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v)))
0.1b
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

series359.0ms (3.8%)

Counts
3 → 180
Calls

3 calls:

235.0ms
(+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v)))
62.0ms
(pow.f32 (E.f32) (+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v))))
61.0ms
(+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))

rewrite73.0ms (0.8%)

Algorithm
rewrite-expression-head
Rules
84×*-un-lft-identity_binary32
44×distribute-lft-out_binary32
27×associate-+r+_binary32
27×pow1_binary32
23×log-pow_binary32
Counts
3 → 123
Calls

3 calls:

11.0ms
(+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v)))
10.0ms
(pow.f32 (E.f32) (+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v))))
6.0ms
(+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))

simplify215.0ms (2.3%)

Algorithm
egg-herbie
Rules
468×times-frac_binary32
363×fma-neg_binary32
329×associate-*r*_binary32
273×associate-/l*_binary32
241×associate-/r*_binary32
Counts
303 → 200
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
043512201
1129711056
2488111055
3521211055

prune396.0ms (4.2%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2160216
Fresh033
Picked011
Done000
Total2164220
Error
0.0b
Counts
220 → 4
Alt Table
StatusErrorProgram
11.0b
(*.f32 (*.f32 1/2 (/.f32 (exp.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) v)) (exp.f32 (fma.f32 (neg.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (*.f32 (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) (sqrt.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))))
0.1b
(pow.f32 (E.f32) (+.f32 (+.f32 (log.f32 1/2) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) (log.f32 (/.f32 1 v))))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (E.f32) (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
2.3b
(*.f32 (/.f32 1/2 v) (*.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (exp.f32 (neg.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))))
Compiler

Compiled 10691 to 6627 computations (38% saved)

regimes1.2s (12.8%)

Accuracy

Total 0.1b remaining (49.6%)

Threshold costs 0.1b (49.6%)

Counts
125 → 1
Compiler

Compiled 29073 to 20923 computations (28% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
*-commutative_binary32
sub-neg_binary32
distribute-neg-frac_binary32
neg-sub0_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01833
12733
23333
33533
43633
53433

end20.0ms (0.2%)

Remove

(sort sinTheta_i sinTheta_O)

(sort cosTheta_i cosTheta_O)

Compiler

Compiled 130 to 105 computations (19.2% saved)

sample2.4s (25.8%)

Algorithm
intervals
Results
1.0s8000×body128valid
447.0ms8133×pre128true
15.0ms133×body128nan
Compiler

Compiled 249 to 174 computations (30.1% saved)

Profiling

Loading profile data...