Details

Time bar (total: 18.8s)

analyze2.0s (10.4%)

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.5s (13.1%)

Symmetry

(sort cosTheta_i cosTheta_O)

(sort sinTheta_i sinTheta_O)

Results
2.4s8256×body128valid
27.0ms110×body128invalid
Compiler

Compiled 168 to 124 computations (26.2% saved)

simplify51.0ms (0.3%)

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)

localize48.0ms (0.3%)

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.1b
(-.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)

series173.0ms (0.9%)

Counts
4 → 180
Calls

4 calls:

93.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)))))
37.0ms
(-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)))
34.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))))
9.0ms
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)

rewrite94.0ms (0.5%)

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:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01881
138281
2475381
3577781

simplify140.0ms (0.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

prune302.0ms (1.6%)

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
(/.f32 1 (/.f32 v (*.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)))
0.4b
(*.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)))) 3) 1/3))
0.1b
(pow.f32 (cbrt.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)
0.3b
(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)
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)))))
Compiler

Compiled 8470 to 5085 computations (40% saved)

localize53.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.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)
0.3b
(cbrt.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)))

series1.3s (6.8%)

Counts
1 → 60
Calls

1 calls:

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

rewrite67.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
521×prod-diff_binary32
198×add-sqr-sqrt_binary32
184×log1p-expm1-u_binary32
184×expm1-log1p-u_binary32
183×add-cbrt-cube_binary32
Counts
1 → 24
Calls

1 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01931
140031
2496431
3590131

simplify81.0ms (0.4%)

Algorithm
egg-herbie
Rules
521×associate-*r*_binary32
494×times-frac_binary32
302×associate-*l*_binary32
278×fma-def_binary32
264×associate-/r*_binary32
Counts
84 → 59
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03564979
111774815
250634815

prune509.0ms (2.7%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1994203
Fresh314
Picked011
Done000
Total2026208
Error
0.0b
Counts
208 → 6
Alt Table
StatusErrorProgram
0.4b
(pow.f32 (cbrt.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)))) 3) 1/3) (/.f32 1/2 v))) 3)
0.1b
(pow.f32 (cbrt.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)
0.1b
(pow.f32 (exp.f32 (*.f32 1/3 (+.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))))) 3)
0.1b
(pow.f32 (*.f32 (pow.f32 (pow.f32 (cbrt.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))) 2) 1/3) (cbrt.f32 (cbrt.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)
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 (*.f32 (cbrt.f32 1/2) (exp.f32 (*.f32 1/3 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (+.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)) (log.f32 v)))))) 3)
Compiler

Compiled 11194 to 7460 computations (33.4% saved)

localize72.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000)
0.3b
(cbrt.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)))
0.7b
(pow.f32 (pow.f32 (cbrt.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))) 2) 1/3)
0.7b
(cbrt.f32 (cbrt.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))))

series7.3s (39%)

Counts
2 → 120
Calls

2 calls:

4.8s
(pow.f32 (pow.f32 (cbrt.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))) 2) 1/3)
2.5s
(cbrt.f32 (cbrt.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))))

rewrite63.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
237×add-sqr-sqrt_binary32
226×log1p-expm1-u_binary32
226×expm1-log1p-u_binary32
222×add-cbrt-cube_binary32
221×add-log-exp_binary32
Counts
2 → 49
Calls

2 calls:

62.0ms
(pow.f32 (pow.f32 (cbrt.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))) 2) 1/3)
62.0ms
(cbrt.f32 (cbrt.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))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02469
150469
2483469
3477569

simplify194.0ms (1%)

Algorithm
egg-herbie
Rules
757×fma-def_binary32
639×times-frac_binary32
361×associate-/l*_binary32
285×*-commutative_binary32
151×associate-*r*_binary32
Counts
169 → 127
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
061916320
1210815235
2498915235

prune955.0ms (5.1%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New2981299
Fresh044
Picked101
Done011
Total2996305
Error
0.0b
Counts
305 → 6
Alt Table
StatusErrorProgram
0.1b
(pow.f32 (*.f32 (cbrt.f32 1/2) (exp.f32 (*.f32 1/3 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (+.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)) (log.f32 v)))))) 3)
0.1b
(pow.f32 (*.f32 (pow.f32 (pow.f32 (cbrt.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))) 2) 1/3) (*.f32 (pow.f32 (/.f32 (exp.f32 (-.f32 6931/10000 (+.f32 (/.f32 1 v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))) v) 1/9) (pow.f32 (cbrt.f32 1/2) 1/3))) 3)
0.4b
(pow.f32 (cbrt.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)))) 3) 1/3) (/.f32 1/2 v))) 3)
0.1b
(pow.f32 (cbrt.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)
0.1b
(pow.f32 (exp.f32 (*.f32 1/3 (+.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))))) 3)
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)))))
Compiler

Compiled 31580 to 21912 computations (30.6% saved)

localize115.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(cbrt.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)))
0.7b
(pow.f32 (pow.f32 (cbrt.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))) 2) 1/3)
1.1b
(pow.f32 (/.f32 (exp.f32 (-.f32 6931/10000 (+.f32 (/.f32 1 v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))) v) 1/9)
7.2b
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)

series1.1s (5.7%)

Counts
2 → 20
Calls

2 calls:

1.1s
(pow.f32 (/.f32 (exp.f32 (-.f32 6931/10000 (+.f32 (/.f32 1 v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))) v) 1/9)
12.0ms
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)

rewrite76.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
295×log1p-udef_binary32
166×add-sqr-sqrt_binary32
160×log1p-expm1-u_binary32
160×expm1-log1p-u_binary32
157×add-log-exp_binary32
Counts
2 → 63
Calls

2 calls:

74.0ms
(pow.f32 (/.f32 (exp.f32 (-.f32 6931/10000 (+.f32 (/.f32 1 v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))) v) 1/9)
74.0ms
(/.f32 (*.f32 sinTheta_i sinTheta_O) v)
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01535
133933
2457033
3490233

simplify122.0ms (0.6%)

Algorithm
egg-herbie
Rules
618×associate-/r*_binary32
555×fma-def_binary32
242×fma-neg_binary32
230×cancel-sign-sub-inv_binary32
227×associate-/r/_binary32
Counts
83 → 89
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01462070
14852010
219261900
348511900
449601900

prune675.0ms (3.6%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New2091210
Fresh134
Picked101
Done011
Total2115216
Error
0.0b
Counts
216 → 5
Alt Table
StatusErrorProgram
0.1b
(pow.f32 (cbrt.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)
0.1b
(pow.f32 (exp.f32 (*.f32 1/3 (+.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))))) 3)
0.1b
(pow.f32 (*.f32 (pow.f32 (pow.f32 (*.f32 (cbrt.f32 1/2) (cbrt.f32 (/.f32 (exp.f32 (+.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (/.f32 -1 v))) v))) 2) 1/3) (*.f32 (pow.f32 (/.f32 (exp.f32 (-.f32 6931/10000 (+.f32 (/.f32 1 v) (/.f32 (*.f32 sinTheta_i sinTheta_O) v)))) v) 1/9) (pow.f32 (cbrt.f32 1/2) 1/3))) 3)
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 (*.f32 (cbrt.f32 1/2) (exp.f32 (*.f32 1/3 (-.f32 (fma.f32 cosTheta_O (/.f32 cosTheta_i v) 6931/10000) (+.f32 (fma.f32 sinTheta_i (/.f32 sinTheta_O v) (/.f32 1 v)) (log.f32 v)))))) 3)
Compiler

Compiled 20684 to 14846 computations (28.2% saved)

regimes753.0ms (4%)

Accuracy

Total 0.1b remaining (53%)

Threshold costs 0.1b (53%)

Counts
77 → 1
Compiler

Compiled 21004 to 15223 computations (27.5% saved)

simplify5.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0374294967295
1474294967295
2544294967295
3654294967295
4794294967295
5874294967295
6924294967295
7944294967295
8924294967295

end157.0ms (0.8%)

Remove

(sort sinTheta_i sinTheta_O)

(sort cosTheta_i cosTheta_O)

Compiler

Compiled 465 to 363 computations (21.9% saved)

Profiling

Loading profile data...