Details

Time bar (total: 9.9s)

analyze919.0ms (9.2%)

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.1s (40.9%)

Symmetry

(sort kx ky)

Results
2.0s6498×body128valid
1.2s790×body1024valid
561.0ms594×body512valid
226.0ms374×body256valid
Compiler

Compiled 101 to 89 computations (11.9% saved)

simplify54.0ms (0.5%)

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

prune5.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)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (sin.f64 ky) 2)
0.3b
(/.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)))
0.9b
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)) 1)
7.3b
(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))

series650.0ms (6.5%)

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)))
137.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))
74.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 ky) 2)

rewrite82.0ms (0.8%)

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:

80.0ms
(pow.f64 (sin.f64 ky) 2)
80.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)))
80.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)
80.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: 0 (0.0ms)

IterNodesCost
01994
139885
2455285
3566785
000
100

simplify189.0ms (1.9%)

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

prune307.0ms (3.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New2232225
Fresh000
Picked011
Done000
Total2233226
Error
0.5b
Counts
226 → 3
Alt Table
StatusErrorProgram
23.9b
(sqrt.f64 (+.f64 1/2 1/2))
33.1b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (fma.f64 l (sqrt.f64 (*.f64 4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))))) (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))))) l))))))
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 12354 to 8656 computations (29.9% saved)

localize3.0ms (0%)

prune4.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done011
Total033
Error
0.5b
Counts
3 → 3
Alt Table
StatusErrorProgram
23.9b
(sqrt.f64 (+.f64 1/2 1/2))
33.1b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (fma.f64 l (sqrt.f64 (*.f64 4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))))) (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))))) l))))))
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 146 to 104 computations (28.8% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
6.1b
(/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om))
7.7b
(/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))
27.4b
(sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om)))))
27.6b
(sqrt.f64 (*.f64 4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om)))))

series463.0ms (4.7%)

Counts
4 → 120
Calls

4 calls:

276.0ms
(sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om)))))
128.0ms
(sqrt.f64 (*.f64 4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om)))))
32.0ms
(/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om))
28.0ms
(/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))

rewrite94.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
838×prod-diff_binary64
195×add-sqr-sqrt_binary64
193×log1p-expm1-u_binary64
193×expm1-log1p-u_binary64
189×add-log-exp_binary64
Counts
4 → 108
Calls

4 calls:

92.0ms
(/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om))
92.0ms
(/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))
92.0ms
(sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om)))))
92.0ms
(sqrt.f64 (*.f64 4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01986
141952
2469352
3639252
000
100

simplify75.0ms (0.8%)

Algorithm
egg-herbie
Rules
947×associate-/l*_binary64
551×fma-def_binary64
300×cancel-sign-sub-inv_binary64
227×associate-/r/_binary64
156×times-frac_binary64
Counts
228 → 168
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01863208
15563064
220772780
350552780

prune280.0ms (2.8%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New2411242
Fresh000
Picked101
Done022
Total2423245
Error
0.5b
Counts
245 → 3
Alt Table
StatusErrorProgram
32.9b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (fma.f64 l (*.f64 (/.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) Om) -2) (*.f64 1/2 (/.f64 (sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))))) l))))))
23.9b
(sqrt.f64 (+.f64 1/2 1/2))
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 13446 to 7842 computations (41.7% saved)

localize27.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.6b
(/.f64 (sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))))) l)
6.1b
(/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om))
7.7b
(/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))
27.4b
(sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om)))))

series573.0ms (5.8%)

Counts
1 → 48
Calls

1 calls:

573.0ms
(/.f64 (sqrt.f64 (/.f64 1/4 (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) (*.f64 Om Om)) (/.f64 (pow.f64 (sin.f64 kx) 2) (*.f64 Om Om))))) l)

rewrite73.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
903×prod-diff_binary64
193×add-sqr-sqrt_binary64
188×log1p-expm1-u_binary64
188×expm1-log1p-u_binary64
184×add-log-exp_binary64
Counts
1 → 28
Calls

1 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01834
140020
2473120
3657620
000
100

simplify54.0ms (0.5%)

Algorithm
egg-herbie
Rules
837×associate-/l*_binary64
803×associate-/r*_binary64
405×fma-def_binary64
230×associate-/r/_binary64
168×cancel-sign-sub-inv_binary64
Counts
76 → 48
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01101984
13621896
214841828
352981828

prune267.0ms (2.7%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1701171
Fresh000
Picked101
Done112
Total1722174
Error
0.1b
Counts
174 → 2
Alt Table
StatusErrorProgram
28.0b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (fma.f64 l (*.f64 (/.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) Om) -2) (*.f64 1/2 (/.f64 (pow.f64 (/.f64 1/4 (pow.f64 (hypot.f64 (/.f64 (sin.f64 ky) Om) (/.f64 (sin.f64 kx) Om)) 2)) 1/2) l))))))
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 7729 to 4200 computations (45.7% saved)

regimes1.6s (16.3%)

Accuracy

Total 1.0b remaining (85.2%)

Threshold costs 1.0b (85.2%)

Counts
61 → 1
Compiler

Compiled 43063 to 32413 computations (24.7% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02136
12736
22636

end89.0ms (0.9%)

Remove

(sort kx ky)

Compiler

Compiled 175 to 144 computations (17.7% saved)

Profiling

Loading profile data...