Details

Time bar (total: 13.9s)

analyze1.9s (13.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
0%99.9%0.1%7
25%74.9%0.1%8
54.6%45.2%0.1%9
56.2%43.7%0.1%10
62.4%37.4%0.1%11
65.9%33.9%0.1%12
66.3%33.5%0.1%13
69%30.8%0.1%14
Compiler

Compiled 20 to 15 computations (25% saved)

sample8.2s (58.9%)

Results
6.2s4769×body1024valid
1.2s1486×body512valid
362.0ms1425×body128valid
321.0ms562×body256valid
32.0ms14×body2048valid
Compiler

Compiled 59 to 44 computations (25.4% saved)

simplify80.0ms (0.6%)

Algorithm
egg-herbie
Rules
645×associate-/r*_binary64
634×sqr-pow_binary64
394×associate-*l*_binary64
373×cube-prod_binary64
368×*-commutative_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01426
12618
24018
36818
414118
534818
6105518
7179618
8248418
9269718
10296818
11331118
12370518
13460318
14479918

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.2b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.2b
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
Compiler

Compiled 58 to 35 computations (39.7% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(hypot.f64 (sin.f64 ky) (sin.f64 kx))
0.2b
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
0.2b
(/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx)))

series286.0ms (2.1%)

Counts
3 → 84
Calls

3 calls:

160.0ms
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
103.0ms
(/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx)))
23.0ms
(hypot.f64 (sin.f64 ky) (sin.f64 kx))

rewrite86.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
525×log-prod_binary64
330×prod-diff_binary64
191×expm1-udef_binary64
191×log1p-udef_binary64
180×pow3_binary64
Counts
3 → 91
Calls

3 calls:

84.0ms
(hypot.f64 (sin.f64 ky) (sin.f64 kx))
84.0ms
(*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))
84.0ms
(/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01039
120339
2251439
3492339
4534839

simplify91.0ms (0.7%)

Algorithm
egg-herbie
Rules
852×fma-def_binary64
469×cancel-sign-sub-inv_binary64
357×fma-neg_binary64
281×neg-mul-1_binary64
205×sub-neg_binary64
Counts
175 → 148
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02332944
17202800
226632590
345792590
449782590

prune143.0ms (1%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1408148
Fresh000
Picked101
Done000
Total1418149
Error
0b
Counts
149 → 8
Alt Table
StatusErrorProgram
2.5b
(/.f64 (/.f64 (*.f64 (sin.f64 ky) (sin.f64 th)) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
0.5b
(*.f64 (*.f64 (/.f64 1 (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (/.f64 (sin.f64 ky) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))) (sin.f64 th))
2.4b
(/.f64 1 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (*.f64 (sin.f64 ky) (sin.f64 th))))
0.2b
(/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)))
24.9b
(cbrt.f64 (pow.f64 (*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th)) 3))
9.5b
(*.f64 (cbrt.f64 (pow.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) 3)) (sin.f64 th))
1.4b
(pow.f64 (cbrt.f64 (*.f64 (/.f64 (sin.f64 ky) (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (sin.f64 th))) 3)
0.2b
(*.f64 (pow.f64 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 ky)) -1) (sin.f64 th))
Compiler

Compiled 3971 to 1841 computations (53.6% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(hypot.f64 (sin.f64 ky) (sin.f64 kx))
0.2b
(/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th))
0.3b
(/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)))

series219.0ms (1.6%)

Counts
2 → 72
Calls

2 calls:

154.0ms
(/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)))
64.0ms
(/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th))

rewrite57.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
570×log-prod_binary64
197×expm1-udef_binary64
197×log1p-udef_binary64
183×log-pow_binary64
171×prod-diff_binary64
Counts
2 → 84
Calls

2 calls:

55.0ms
(/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th))
55.0ms
(/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
120931
2272831
3517631

simplify67.0ms (0.5%)

Algorithm
egg-herbie
Rules
929×associate-/l*_binary64
770×fma-def_binary64
382×cancel-sign-sub-inv_binary64
232×associate-/r/_binary64
138×fma-neg_binary64
Counts
156 → 130
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01992827
16212459
223482219
357532219

prune136.0ms (1%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New1645169
Fresh527
Picked101
Done000
Total1707177
Error
0b
Counts
177 → 7
Alt Table
StatusErrorProgram
0.2b
(*.f64 (/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (neg.f64 (sin.f64 th)))
0.3b
(log1p.f64 (expm1.f64 (/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)))))
2.5b
(/.f64 (/.f64 (*.f64 (sin.f64 ky) (sin.f64 th)) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
2.3b
(*.f64 (/.f64 1 (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (/.f64 (sin.f64 ky) (/.f64 1 (sin.f64 th))))
17.8b
(/.f64 (sin.f64 ky) (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)) 3)))
0.2b
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
0.2b
(*.f64 (pow.f64 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 ky)) -1) (sin.f64 th))
Compiler

Compiled 4459 to 1881 computations (57.8% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(hypot.f64 (sin.f64 ky) (sin.f64 kx))
0.2b
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
0.2b
(/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx)))

series355.0ms (2.5%)

Counts
2 → 72
Calls

2 calls:

207.0ms
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
147.0ms
(/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx)))

rewrite79.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
525×log-prod_binary64
330×prod-diff_binary64
191×expm1-udef_binary64
191×log1p-udef_binary64
180×pow3_binary64
Counts
2 → 67
Calls

2 calls:

78.0ms
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
78.0ms
(/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
120331
2251231
3491931
4534431

simplify73.0ms (0.5%)

Algorithm
egg-herbie
Rules
742×fma-def_binary64
411×cancel-sign-sub-inv_binary64
368×associate-/r/_binary64
177×fma-neg_binary64
174×times-frac_binary64
Counts
139 → 114
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01922908
16072884
223532627
349922627

prune133.0ms (1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1530153
Fresh066
Picked011
Done000
Total1537160
Error
0b
Counts
160 → 7
Alt Table
StatusErrorProgram
0.2b
(*.f64 (/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (neg.f64 (sin.f64 th)))
0.3b
(log1p.f64 (expm1.f64 (/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)))))
2.5b
(/.f64 (/.f64 (*.f64 (sin.f64 ky) (sin.f64 th)) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
2.3b
(*.f64 (/.f64 1 (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (/.f64 (sin.f64 ky) (/.f64 1 (sin.f64 th))))
17.8b
(/.f64 (sin.f64 ky) (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)) 3)))
0.2b
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
0.2b
(*.f64 (pow.f64 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 ky)) -1) (sin.f64 th))
Compiler

Compiled 4236 to 1952 computations (53.9% saved)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(hypot.f64 (sin.f64 ky) (sin.f64 kx))
0.2b
(*.f64 (/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (neg.f64 (sin.f64 th)))
0.2b
(/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))

series263.0ms (1.9%)

Counts
2 → 60
Calls

2 calls:

155.0ms
(*.f64 (/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (neg.f64 (sin.f64 th)))
108.0ms
(/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))

rewrite87.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
555×log-prod_binary64
333×prod-diff_binary64
195×expm1-udef_binary64
195×log1p-udef_binary64
179×log-pow_binary64
Counts
2 → 74
Calls

2 calls:

85.0ms
(*.f64 (/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (neg.f64 (sin.f64 th)))
85.0ms
(/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
124931
2263831
3488031
4526931

simplify87.0ms (0.6%)

Algorithm
egg-herbie
Rules
893×times-frac_binary64
715×fma-def_binary64
455×fma-neg_binary64
303×cancel-sign-sub-inv_binary64
170×sub-neg_binary64
Counts
134 → 116
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01852422
15812406
221202395
349532393
452102393

prune110.0ms (0.8%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1550155
Fresh055
Picked011
Done011
Total1557162
Error
0b
Counts
162 → 7
Alt Table
StatusErrorProgram
0.2b
(*.f64 (/.f64 (sin.f64 ky) (neg.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (neg.f64 (sin.f64 th)))
0.3b
(log1p.f64 (expm1.f64 (/.f64 (sin.f64 ky) (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)))))
2.5b
(/.f64 (/.f64 (*.f64 (sin.f64 ky) (sin.f64 th)) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)))) (sqrt.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
2.3b
(*.f64 (/.f64 1 (hypot.f64 (sin.f64 ky) (sin.f64 kx))) (/.f64 (sin.f64 ky) (/.f64 1 (sin.f64 th))))
17.8b
(/.f64 (sin.f64 ky) (cbrt.f64 (pow.f64 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 th)) 3)))
0.2b
(*.f64 (sin.f64 ky) (/.f64 (sin.f64 th) (hypot.f64 (sin.f64 ky) (sin.f64 kx))))
0.2b
(*.f64 (pow.f64 (/.f64 (hypot.f64 (sin.f64 ky) (sin.f64 kx)) (sin.f64 ky)) -1) (sin.f64 th))
Compiler

Compiled 4166 to 1876 computations (55% saved)

regimes1.4s (9.7%)

Accuracy

Total 0.2b remaining (86.5%)

Threshold costs 0.2b (86.5%)

Counts
127 → 1
Compiler

Compiled 20742 to 14127 computations (31.9% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01018
11018

end109.0ms (0.8%)

Compiler

Compiled 147 to 96 computations (34.7% saved)

Profiling

Loading profile data...