Details

Time bar (total: 14.4s)

analyze856.0ms (5.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
49.9%49.9%0.2%3
49.9%49.9%0.2%4
49.9%49.9%0.2%5
49.9%49.9%0.2%6
74.9%25%0.2%7
74.9%25%0.2%8
74.9%25%0.2%9
74.9%25%0.2%10
87.3%12.5%0.2%11
87.3%12.5%0.2%12
87.3%12.5%0.2%13
87.3%12.5%0.2%14
Compiler

Compiled 34 to 30 computations (11.8% saved)

sample4.0s (27.5%)

Symmetry

(sort kx ky)

Results
2.1s6529×body128valid
1.1s808×body1024valid
512.0ms572×body512valid
222.0ms347×body256valid
Compiler

Compiled 101 to 89 computations (11.9% saved)

simplify53.0ms (0.4%)

Algorithm
egg-herbie
Rules
665×fma-def_binary64
575×associate-*l*_binary64
512×unswap-sqr_binary64
437×associate-*r*_binary64
369×associate-/r/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02442
15637
211337
346537
4214937
5498237
6484737
7496437

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
1.0b
Counts
3 → 1
Alt Table
StatusErrorProgram
1.0b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)))))
Compiler

Compiled 113 to 95 computations (15.9% saved)

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (sin.f64 kx) 2)
0.4b
(/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)))
1.5b
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)
9.1b
(sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1))

series660.0ms (4.6%)

Counts
4 → 148
Calls

4 calls:

435.0ms
(/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)))
142.0ms
(sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1))
78.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)
3.0ms
(pow.f64 (sin.f64 kx) 2)

rewrite80.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
662×prod-diff_binary64
189×add-sqr-sqrt_binary64
183×log1p-expm1-u_binary64
183×expm1-log1p-u_binary64
178×add-log-exp_binary64
Counts
4 → 97
Calls

4 calls:

78.0ms
(pow.f64 (sin.f64 kx) 2)
78.0ms
(/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)))
78.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)
78.0ms
(sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01994
139885
2455285
3566785

simplify323.0ms (2.2%)

Algorithm
egg-herbie
Rules
424×fma-neg_binary64
336×fma-def_binary64
267×*-commutative_binary64
261×associate-*r*_binary64
192×associate-*r/_binary64
Counts
245 → 225
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
037311132
1121110267
2461310261
3497810261

prune416.0ms (2.9%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2214225
Fresh000
Picked101
Done000
Total2224226
Error
0.6b
Counts
226 → 4
Alt Table
StatusErrorProgram
27.3b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (fma.f64 1/2 (*.f64 Om (sqrt.f64 (/.f64 1/4 (*.f64 (*.f64 l l) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))))) (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 l l) 4) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))) Om)))))
1.0b
(sqrt.f64 (+.f64 1/2 (expm1.f64 (log1p.f64 (/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)))))))
25.6b
(sqrt.f64 (+.f64 1/2 1/2))
1.0b
(sqrt.f64 (+.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1))))) 1)))
Compiler

Compiled 12426 to 8728 computations (29.8% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)))
0.4b
(pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2)
1.5b
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)
9.1b
(sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1))

series817.0ms (5.7%)

Counts
4 → 168
Calls

4 calls:

494.0ms
(/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)))
168.0ms
(sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1))
118.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)
36.0ms
(pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2)

rewrite79.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
305×expm1-udef_binary64
305×log1p-udef_binary64
175×add-sqr-sqrt_binary64
166×log1p-expm1-u_binary64
166×expm1-log1p-u_binary64
Counts
4 → 99
Calls

4 calls:

77.0ms
(/.f64 1/2 (sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)))
77.0ms
(pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2)
77.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)
77.0ms
(sqrt.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01890
136787
2406887
3518587

simplify254.0ms (1.8%)

Algorithm
egg-herbie
Rules
417×fma-neg_binary64
356×fma-def_binary64
268×*-commutative_binary64
262×associate-*r*_binary64
197×+-commutative_binary64
Counts
267 → 233
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
037711424
1122910553
2465210547
3498010547

prune332.0ms (2.3%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New2312233
Fresh303
Picked101
Done000
Total2352237
Error
0.0b
Counts
237 → 2
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (+.f64 1/2 (expm1.f64 (log1p.f64 (log.f64 (exp.f64 (/.f64 1/2 (sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2))))))))))
0.0b
(sqrt.f64 (+.f64 1/2 (expm1.f64 (log1p.f64 (/.f64 1/2 (sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2))))))))
Compiler

Compiled 12878 to 9094 computations (29.4% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)
0.4b
(/.f64 1/2 (sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2))))
2.3b
(*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))
9.1b
(sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)))

series1.2s (8.1%)

Counts
4 → 192
Calls

4 calls:

585.0ms
(/.f64 1/2 (sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2))))
261.0ms
(sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)))
203.0ms
(pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)
116.0ms
(*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))

rewrite81.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
633×prod-diff_binary64
181×add-sqr-sqrt_binary64
175×log1p-expm1-u_binary64
175×expm1-log1p-u_binary64
171×add-cbrt-cube_binary64
Counts
4 → 107
Calls

4 calls:

78.0ms
(pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)
78.0ms
(/.f64 1/2 (sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2))))
78.0ms
(*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))
78.0ms
(sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01890
138080
2445980
3563180

simplify166.0ms (1.1%)

Algorithm
egg-herbie
Rules
377×fma-def_binary64
304×associate-*r*_binary64
242×associate-*r/_binary64
241×associate-/l*_binary64
240×times-frac_binary64
Counts
299 → 241
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042612038
1142811261
2498211261

prune339.0ms (2.4%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New2401241
Fresh101
Picked011
Done000
Total2412243
Error
0.0b
Counts
243 → 2
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (+.f64 1/2 (expm1.f64 (log1p.f64 (/.f64 1/2 (sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2))))))))
0.0b
(sqrt.f64 (+.f64 1/2 (expm1.f64 (log1p.f64 (log.f64 (exp.f64 (/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))))))))
Compiler

Compiled 13094 to 9074 computations (30.7% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(hypot.f64 (sin.f64 kx) (sin.f64 ky))
0.4b
(/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))
2.3b
(*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))
4.7b
(log.f64 (exp.f64 (/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))))

series1.1s (7.4%)

Counts
3 → 120
Calls

3 calls:

554.0ms
(/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))
490.0ms
(log.f64 (exp.f64 (/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))))
24.0ms
(hypot.f64 (sin.f64 kx) (sin.f64 ky))

rewrite69.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
301×expm1-udef_binary64
301×log1p-udef_binary64
169×add-sqr-sqrt_binary64
159×log1p-expm1-u_binary64
159×expm1-log1p-u_binary64
Counts
3 → 77
Calls

3 calls:

67.0ms
(hypot.f64 (sin.f64 kx) (sin.f64 ky))
67.0ms
(/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))
67.0ms
(log.f64 (exp.f64 (/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01854
134454
2404054
3522454

simplify799.0ms (5.5%)

Algorithm
egg-herbie
Rules
454×cancel-sign-sub-inv_binary64
256×unswap-sqr_binary64
222×fma-neg_binary64
207×fma-def_binary64
182×sub-neg_binary64
Counts
197 → 117
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02999818
18889238
233549238
350049238

prune211.0ms (1.5%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New1650165
Fresh000
Picked011
Done011
Total1652167
Error
0.0b
Counts
167 → 2
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (+.f64 1/2 (expm1.f64 (log1p.f64 (/.f64 1/2 (sqrt.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2))))))))
0.0b
(sqrt.f64 (+.f64 1/2 (expm1.f64 (log1p.f64 (log.f64 (exp.f64 (/.f64 1/2 (hypot.f64 1 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))))))))))
Compiler

Compiled 7987 to 5557 computations (30.4% saved)

regimes2.5s (17.5%)

Accuracy

Total 0.0b remaining (42.4%)

Threshold costs 0.0b (42.4%)

Counts
105 → 1
Compiler

Compiled 60813 to 51274 computations (15.7% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02234
13034
23234
33334
43234

end85.0ms (0.6%)

Remove

(sort kx ky)

Compiler

Compiled 153 to 129 computations (15.7% saved)

Profiling

Loading profile data...