Details

Time bar (total: 10.1s)

analyze2.2s (21.8%)

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 51 to 38 computations (25.5% saved)

sample94.0ms (0.9%)

Algorithm
intervals
Results
35.0ms256×body128valid
12.0ms257×pre128true
0.0msbody128nan
Compiler

Compiled 86 to 65 computations (24.4% saved)

simplify62.0ms (0.6%)

Algorithm
egg-herbie
Rules
982×exp-sum_binary32
570×exp-diff_binary32
458×sub-neg_binary32
380×cancel-sign-sub-inv_binary32
307×div-exp_binary32
Counts
1 → 1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02235
15333
214533
351333
4197933
5385633
6478233
7530533

prune9.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.2b
Counts
2 → 2
Alt Table
StatusErrorProgram
0.2b
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496)))
0.2b
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496) (log.f32 (/.f32 1 (*.f32 2 v)))))
Compiler

Compiled 141 to 101 computations (28.4% saved)

localize72.0ms (0.7%)

Local error

Found 4 expressions with local error:

0.1b
(-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
0.1b
(log.f32 (/.f32 1 (*.f32 2 v)))
7.9b
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
8.2b
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)

rewrite184.0ms (1.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
26×add-exp-log_binary32
14×*-un-lft-identity_binary32
14×add-sqr-sqrt_binary32
14×add-cbrt-cube_binary32
12×times-frac_binary32
Counts
4 → 92
Calls

4 calls:

8.0ms
(-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
3.0ms
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
3.0ms
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
3.0ms
(log.f32 (/.f32 1 (*.f32 2 v)))
Compiler

Compiled 2677 to 1370 computations (48.8% saved)

series183.0ms (1.8%)

Error
0.0b
Counts
4 → 36
Calls

4 calls:

66.0ms
(-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
43.0ms
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
43.0ms
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
16.0ms
(log.f32 (/.f32 1 (*.f32 2 v)))
Compiler

Compiled 2288 to 1675 computations (26.8% saved)

simplify101.0ms (1%)

Algorithm
egg-herbie
Rules
729×times-frac_binary32
488×associate-*l/_binary32
379×associate-*r/_binary32
362×associate-/l/_binary32
239×div-sub_binary32
Counts
128 → 63
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01641323
13921265
212591265
343251260
446011260
551171260

prune94.0ms (0.9%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New61263
Fresh011
Picked101
Done000
Total62365
Error
0.0b
Counts
65 → 3
Alt Table
StatusErrorProgram
0.2b
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496)))
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)) 3121444901730491/4503599627370496) (neg.f32 (log.f32 (*.f32 v 2)))))
0.2b
(exp.f32 (+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496) (*.f32 (*.f32 (cbrt.f32 (log.f32 (/.f32 1/2 v))) (cbrt.f32 (log.f32 (/.f32 1/2 v)))) (cbrt.f32 (log.f32 (/.f32 1/2 v))))))
Compiler

Compiled 1304 to 712 computations (45.4% saved)

localize71.0ms (0.7%)

Local error

Found 4 expressions with local error:

0.1b
(+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496) (neg.f32 (log.f32 (*.f32 v 2))))
0.1b
(-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
7.9b
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
8.2b
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)

rewrite219.0ms (2.2%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
84×*-un-lft-identity_binary32
44×distribute-lft-out_binary32
30×add-log-exp_binary32
25×distribute-lft-out--_binary32
22×pow1_binary32
Counts
4 → 112
Calls

4 calls:

24.0ms
(+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496) (neg.f32 (log.f32 (*.f32 v 2))))
8.0ms
(-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
3.0ms
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
3.0ms
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
Compiler

Compiled 2810 to 1364 computations (51.5% saved)

series300.0ms (3%)

Error
0.0b
Counts
4 → 58
Calls

4 calls:

122.0ms
(+.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496) (neg.f32 (log.f32 (*.f32 v 2))))
67.0ms
(-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v))
43.0ms
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
42.0ms
(/.f32 (*.f32 cosTheta_i cosTheta_O) v)
Compiler

Compiled 3054 to 2208 computations (27.7% saved)

simplify97.0ms (1%)

Algorithm
egg-herbie
Rules
749×times-frac_binary32
692×distribute-rgt-in_binary32
218×sub-neg_binary32
135×cancel-sign-sub-inv_binary32
105×associate-/l*_binary32
Counts
170 → 106
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02123261
15703129
220382929
349492929

prune86.0ms (0.8%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New1051106
Fresh112
Picked101
Done000
Total1072109
Error
0.0b
Counts
109 → 2
Alt Table
StatusErrorProgram
0.2b
(*.f32 (/.f32 1/2 v) (exp.f32 (+.f32 (-.f32 (-.f32 (/.f32 (*.f32 cosTheta_i cosTheta_O) v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)) (/.f32 1 v)) 3121444901730491/4503599627370496)))
0.0b
(exp.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
Compiler

Compiled 1375 to 728 computations (47.1% saved)

localize69.0ms (0.7%)

Local error

Found 4 expressions with local error:

0.0b
(+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2)))
0.0b
(exp.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
0.1b
(-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O))
0.1b
(+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v)))

rewrite221.0ms (2.2%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
78×*-un-lft-identity_binary32
45×distribute-lft-out_binary32
37×add-log-exp_binary32
22×sum-log_binary32
20×pow1_binary32
Counts
4 → 106
Calls

4 calls:

22.0ms
(+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2)))
21.0ms
(exp.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
15.0ms
(+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v)))
3.0ms
(-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O))
Compiler

Compiled 2441 to 1313 computations (46.2% saved)

series388.0ms (3.8%)

Error
0.0b
Counts
4 → 77
Calls

4 calls:

124.0ms
(+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2)))
117.0ms
(+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v)))
79.0ms
(exp.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
39.0ms
(-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O))
Compiler

Compiled 3903 to 2897 computations (25.8% saved)

simplify180.0ms (1.8%)

Algorithm
egg-herbie
Rules
445×associate-*l*_binary32
381×associate-*r*_binary32
263×sub-neg_binary32
149×exp-sum_binary32
142×cancel-sign-sub-inv_binary32
Counts
183 → 143
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01934484
15614307
219143834
344563750
449693750
549713750

prune124.0ms (1.2%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1412143
Fresh101
Picked011
Done000
Total1423145
Error
0.0b
Counts
145 → 3
Alt Table
StatusErrorProgram
0.0b
(exp.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
0.1b
(pow.f32 E.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
0.1b
(*.f32 (*.f32 (cbrt.f32 (/.f32 (exp.f32 (+.f32 3121444901730491/4503599627370496 (/.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (+.f32 1 (*.f32 sinTheta_i sinTheta_O))) v))) (*.f32 v 2))) (cbrt.f32 (/.f32 (exp.f32 (+.f32 3121444901730491/4503599627370496 (/.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (+.f32 1 (*.f32 sinTheta_i sinTheta_O))) v))) (*.f32 v 2)))) (cbrt.f32 (/.f32 (exp.f32 (+.f32 3121444901730491/4503599627370496 (/.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (+.f32 1 (*.f32 sinTheta_i sinTheta_O))) v))) (*.f32 v 2))))
Compiler

Compiled 1896 to 1133 computations (40.2% saved)

localize64.0ms (0.6%)

Local error

Found 4 expressions with local error:

0.0b
(+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2)))
0.0b
(pow.f32 E.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
0.1b
(-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O))
0.1b
(+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v)))

rewrite238.0ms (2.3%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
79×*-un-lft-identity_binary32
45×distribute-lft-out_binary32
23×add-log-exp_binary32
21×pow1_binary32
16×distribute-rgt-neg-in_binary32
Counts
4 → 107
Calls

4 calls:

21.0ms
(pow.f32 E.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
20.0ms
(+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2)))
14.0ms
(+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v)))
3.0ms
(-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O))
Compiler

Compiled 2653 to 1381 computations (47.9% saved)

series411.0ms (4.1%)

Error
0.0b
Counts
4 → 77
Calls

4 calls:

132.0ms
(+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2)))
121.0ms
(+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v)))
80.0ms
(pow.f32 E.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
42.0ms
(-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O))
Compiler

Compiled 4110 to 3052 computations (25.7% saved)

simplify184.0ms (1.8%)

Algorithm
egg-herbie
Rules
456×associate-*l*_binary32
405×associate-*r*_binary32
267×sub-neg_binary32
146×exp-prod_binary32
137×exp-sum_binary32
Counts
184 → 151
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02094934
16274739
220594224
344794224
449554224
549044224

prune137.0ms (1.3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1501151
Fresh101
Picked101
Done011
Total1522154
Error
0.0b
Counts
154 → 2
Alt Table
StatusErrorProgram
0.1b
(pow.f32 E.f32 (log.f32 (/.f32 1/2 (/.f32 v (exp.f32 (+.f32 3121444901730491/4503599627370496 (/.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (+.f32 1 (*.f32 sinTheta_i sinTheta_O))) v)))))))
0.0b
(exp.f32 (+.f32 (+.f32 (/.f32 (+.f32 (-.f32 (*.f32 cosTheta_i cosTheta_O) (*.f32 sinTheta_i sinTheta_O)) -1) v) (-.f32 3121444901730491/4503599627370496 (log.f32 v))) (neg.f32 (log.f32 2))))
Compiler

Compiled 1975 to 1117 computations (43.4% saved)

regimes1.9s (18.6%)

Accuracy

Total 0.0b remaining (24%)

Threshold costs 0.0b (24%)

Compiler

Compiled 24249 to 18529 computations (23.6% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary32
*-commutative_binary32
sub-neg_binary32
neg-sub0_binary32
neg-mul-1_binary32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02237
13537
24837
35637
46137
56237
66137

end30.0ms (0.3%)

Remove

(sort sinTheta_i sinTheta_O)

(sort cosTheta_i cosTheta_O)

Compiler

Compiled 140 to 105 computations (25% saved)

sample2.4s (23.9%)

Algorithm
intervals
Results
1.0s8000×body128valid
388.0ms8116×pre128true
12.0ms116×body128nan
Compiler

Compiled 136 to 104 computations (23.5% saved)

Profiling

Loading profile data...