Details

Time bar (total: 9.0s)

analyze2.4s (26.1%)

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)

sample2.6s (29.2%)

Symmetry

(sort cosTheta_i cosTheta_O)

(sort sinTheta_i sinTheta_O)

Results
2.5s8256×body128valid
34.0ms132×body128invalid
Compiler

Compiled 168 to 124 computations (26.2% saved)

simplify52.0ms (0.6%)

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

series187.0ms (2.1%)

Counts
4 → 180
Calls

4 calls:

103.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)))))
36.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)))
12.0ms
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

rewrite94.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
561×prod-diff_binary32
190×add-sqr-sqrt_binary32
177×log1p-expm1-u_binary32
177×expm1-log1p-u_binary32
176×add-log-exp_binary32
Counts
4 → 138
Calls

4 calls:

90.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)))))
90.0ms
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
90.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))))
90.0ms
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01881
138281
2475381
3577781
000
100

simplify152.0ms (1.7%)

Algorithm
egg-herbie
Rules
389×times-frac_binary32
263×associate-/l*_binary32
261×associate-+r+_binary32
247×cancel-sign-sub-inv_binary32
224×fma-def_binary32
Counts
318 → 205
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02767456
19117024
241306570
350106570

prune395.0ms (4.4%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New2005205
Fresh101
Picked101
Done000
Total2025207
Error
0.1b
Counts
207 → 5
Alt Table
StatusErrorProgram
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.2b
(*.f32 (/.f32 1/2 v) (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) 2)) (cbrt.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
(*.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
(/.f32 (/.f32 (*.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)))) 1/2) (sqrt.f32 v)) (sqrt.f32 v))
0.1b
(*.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)))) (/.f32 1/2 v))
Compiler

Compiled 8494 to 5087 computations (40.1% saved)

localize51.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.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)))) (/.f32 1/2 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)

series94.0ms (1%)

Counts
1 → 60
Calls

1 calls:

94.0ms
(*.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)))) (/.f32 1/2 v))

rewrite74.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
561×prod-diff_binary32
190×add-sqr-sqrt_binary32
177×log1p-expm1-u_binary32
177×expm1-log1p-u_binary32
176×add-log-exp_binary32
Counts
1 → 33
Calls

1 calls:

73.0ms
(*.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)))) (/.f32 1/2 v))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01829
138229
2475129
3577529
000
100

simplify139.0ms (1.5%)

Algorithm
egg-herbie
Rules
823×fma-def_binary32
452×associate-/r/_binary32
230×times-frac_binary32
167×associate-*r*_binary32
160×associate-/l/_binary32
Counts
93 → 59
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01813594
15993498
226303384
350963384

prune333.0ms (3.7%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New2030203
Fresh044
Picked011
Done000
Total2035208
Error
0.1b
Counts
208 → 5
Alt Table
StatusErrorProgram
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.2b
(*.f32 (/.f32 1/2 v) (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) 2)) (cbrt.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
(*.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
(/.f32 (/.f32 (*.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)))) 1/2) (sqrt.f32 v)) (sqrt.f32 v))
0.1b
(*.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)))) (/.f32 1/2 v))
Compiler

Compiled 8415 to 5015 computations (40.4% 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
(+.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
(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
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

series244.0ms (2.7%)

Counts
2 → 120
Calls

2 calls:

194.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)))
50.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))))

rewrite85.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
527×prod-diff_binary32
204×add-sqr-sqrt_binary32
192×log1p-expm1-u_binary32
192×expm1-log1p-u_binary32
190×add-log-exp_binary32
Counts
2 → 64
Calls

2 calls:

82.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)))
82.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))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01958
140958
2491058
3588158
000
100

simplify121.0ms (1.3%)

Algorithm
egg-herbie
Rules
468×times-frac_binary32
311×associate-*r*_binary32
267×associate-/l*_binary32
253×associate-+r+_binary32
240×associate-/r*_binary32
Counts
184 → 116
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02856298
19485872
245185432
350015432

prune363.0ms (4%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New2080208
Fresh033
Picked011
Done011
Total2085213
Error
0.1b
Counts
213 → 5
Alt Table
StatusErrorProgram
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.2b
(*.f32 (/.f32 1/2 v) (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) 2)) (cbrt.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
(*.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
(/.f32 (/.f32 (*.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)))) 1/2) (sqrt.f32 v)) (sqrt.f32 v))
0.1b
(*.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)))) (/.f32 1/2 v))
Compiler

Compiled 9029 to 5539 computations (38.7% saved)

localize58.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f32 (*.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)))) 1/2) (sqrt.f32 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)

series131.0ms (1.5%)

Counts
1 → 48
Calls

1 calls:

131.0ms
(/.f32 (*.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)))) 1/2) (sqrt.f32 v))

rewrite70.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
337×prod-diff_binary32
199×add-sqr-sqrt_binary32
186×log1p-expm1-u_binary32
186×expm1-log1p-u_binary32
185×add-log-exp_binary32
Counts
1 → 43
Calls

1 calls:

68.0ms
(/.f32 (*.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)))) 1/2) (sqrt.f32 v))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01931
140131
2484931
3547631
000
100

simplify84.0ms (0.9%)

Algorithm
egg-herbie
Rules
815×associate-*l*_binary32
656×cancel-sign-sub-inv_binary32
420×fma-neg_binary32
318×*-commutative_binary32
264×fma-def_binary32
Counts
91 → 62
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0982538
12842444
28802328
333082328
451372328

prune401.0ms (4.4%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New2042206
Fresh202
Picked011
Done022
Total2065211
Error
0.0b
Counts
211 → 5
Alt Table
StatusErrorProgram
0.1b
(/.f32 (/.f32 (*.f32 (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)))) 1/2) (sqrt.f32 v)) (sqrt.f32 v))
0.2b
(/.f32 (/.f32 (*.f32 (pow.f32 (exp.f32 (pow.f32 (cbrt.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))) 2)) (cbrt.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))))) 1/2) (sqrt.f32 v)) (sqrt.f32 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 (*.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)))) 1/2) (sqrt.f32 v)) (sqrt.f32 v))
0.1b
(*.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)))) (/.f32 1/2 v))
Compiler

Compiled 8817 to 4928 computations (44.1% saved)

regimes674.0ms (7.5%)

Accuracy

Total 0.1b remaining (55.5%)

Threshold costs 0.1b (55.5%)

Counts
74 → 1
Compiler

Compiled 16306 to 11798 computations (27.6% 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
01732
12332
22932
33132
43232
53032

end125.0ms (1.4%)

Remove

(sort sinTheta_i sinTheta_O)

(sort cosTheta_i cosTheta_O)

Compiler

Compiled 315 to 224 computations (28.9% saved)

Profiling

Loading profile data...