Details

Time bar (total: 15.6s)

analyze3.8s (24.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)

sample5.2s (33.5%)

Symmetry

(sort cosTheta_i cosTheta_O)

(sort sinTheta_i sinTheta_O)

Results
5.0s8256×body128valid
67.0ms134×body128invalid
Compiler

Compiled 168 to 124 computations (26.2% saved)

simplify63.0ms (0.4%)

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

prune8.0ms (0.1%)

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)

localize98.0ms (0.6%)

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

series418.0ms (2.7%)

Counts
4 → 180
Calls

4 calls:

236.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)))))
88.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))))
73.0ms
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
20.0ms
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

rewrite136.0ms (0.9%)

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 → 134
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01881
138281
2475381
3577781
000
100

simplify263.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
314 → 202
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02767456
19117024
241306570
350106570

prune643.0ms (4.1%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1966202
Fresh101
Picked101
Done000
Total1986204
Error
0.0b
Counts
204 → 6
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.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 1/2 v) (pow.f32 (cbrt.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))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (sqrt.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))))) 2))
3.5b
(/.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (*.f32 (/.f32 v 1/2) (exp.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
0.2b
(pow.f32 (pow.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)))) (/.f32 1/2 v)) 3) 1/3)
Compiler

Compiled 8458 to 5084 computations (39.9% saved)

localize115.0ms (0.7%)

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
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)
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.3b
(sqrt.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)))))

series153.0ms (1%)

Counts
1 → 24
Calls

1 calls:

153.0ms
(sqrt.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)))))

rewrite92.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
552×prod-diff_binary32
166×add-sqr-sqrt_binary32
155×log1p-expm1-u_binary32
155×expm1-log1p-u_binary32
154×add-log-exp_binary32
Counts
1 → 24
Calls

1 calls:

90.0ms
(sqrt.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)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01625
133325
2410925
3515425
000
100

simplify101.0ms (0.6%)

Algorithm
egg-herbie
Rules
890×associate-/r*_binary32
355×associate-/r/_binary32
251×cancel-sign-sub-inv_binary32
218×fma-def_binary32
174×times-frac_binary32
Counts
48 → 47
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01692608
15912198
225761914
360361914

prune610.0ms (3.9%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1881189
Fresh145
Picked011
Done000
Total1896195
Error
0.0b
Counts
195 → 6
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.2b
(*.f32 (/.f32 1/2 v) (pow.f32 (pow.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/2) 1/3) 2))
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 (cbrt.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))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (sqrt.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))))) 2))
3.5b
(/.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (*.f32 (/.f32 v 1/2) (exp.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
Compiler

Compiled 8880 to 5505 computations (38% saved)

localize115.0ms (0.7%)

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
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)
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.3b
(cbrt.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)))))

series1.5s (9.5%)

Counts
1 → 60
Calls

1 calls:

1.5s
(cbrt.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)))))

rewrite58.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
552×prod-diff_binary32
166×add-sqr-sqrt_binary32
154×log1p-expm1-u_binary32
154×expm1-log1p-u_binary32
153×add-cbrt-cube_binary32
Counts
1 → 22
Calls

1 calls:

57.0ms
(cbrt.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)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01625
133125
2410225
3514725
000
100

simplify78.0ms (0.5%)

Algorithm
egg-herbie
Rules
830×fma-def_binary32
426×associate-/r/_binary32
262×times-frac_binary32
189×associate-*r*_binary32
180×associate-+r+_binary32
Counts
82 → 49
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02003390
16463306
228443146
353393146

prune408.0ms (2.6%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New1883191
Fresh134
Picked011
Done011
Total1898197
Error
0.0b
Counts
197 → 8
Alt Table
StatusErrorProgram
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (*.f32 (pow.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)))) 2/3) 1/3) (cbrt.f32 (cbrt.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))
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)))))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (cbrt.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))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (sqrt.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))))) 2))
3.5b
(/.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (*.f32 (/.f32 v 1/2) (exp.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (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))) 1/3)) 3))
0.1b
(*.f32 (/.f32 1/2 v) (pow.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)))) 1/3) 3))
Compiler

Compiled 9224 to 5834 computations (36.8% saved)

localize58.0ms (0.4%)

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
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)
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))) 1/3))
0.4b
(*.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) 1/3)

series103.0ms (0.7%)

Counts
2 → 120
Calls

2 calls:

52.0ms
(*.f32 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v))) 1/3)
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))) 1/3))

rewrite70.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
552×prod-diff_binary32
176×add-sqr-sqrt_binary32
165×log1p-expm1-u_binary32
165×expm1-log1p-u_binary32
164×add-log-exp_binary32
Counts
2 → 42
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01750
135549
2432149
3534349
000
100

simplify152.0ms (1%)

Algorithm
egg-herbie
Rules
857×fma-def_binary32
262×times-frac_binary32
195×associate-*r*_binary32
180×associate-+r+_binary32
164×associate-/l*_binary32
Counts
162 → 81
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02124962
16904643
229854327
348804327
449984327
549734327

prune334.0ms (2.1%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1720172
Fresh055
Picked011
Done022
Total1728180
Error
0.0b
Counts
180 → 8
Alt Table
StatusErrorProgram
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (*.f32 (pow.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)))) 2/3) 1/3) (cbrt.f32 (cbrt.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))
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)))))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (cbrt.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))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (sqrt.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))))) 2))
3.5b
(/.f32 (exp.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)) (*.f32 (/.f32 v 1/2) (exp.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))))
0.1b
(*.f32 (/.f32 1/2 v) (pow.f32 (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))) 1/3)) 3))
0.1b
(*.f32 (/.f32 1/2 v) (pow.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)))) 1/3) 3))
Compiler

Compiled 7205 to 4524 computations (37.2% saved)

regimes888.0ms (5.7%)

Accuracy

Total 0.1b remaining (58.4%)

Threshold costs 0.1b (58.4%)

Counts
98 → 1
Compiler

Compiled 23124 to 17012 computations (26.4% saved)

simplify2.0ms (0%)

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
01727
12227
22627
32827
42927
52827

end170.0ms (1.1%)

Remove

(sort sinTheta_i sinTheta_O)

(sort cosTheta_i cosTheta_O)

Compiler

Compiled 380 to 277 computations (27.1% saved)

Profiling

Loading profile data...