Details

Time bar (total: 25.3s)

analyze824.0ms (3.3%)

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.2s (16.7%)

Symmetry

(sort kx ky)

Results
2.2s6587×body128valid
1.2s801×body1024valid
560.0ms541×body512valid
196.0ms327×body256valid
Compiler

Compiled 101 to 89 computations (11.9% saved)

simplify70.0ms (0.3%)

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.8b
Counts
3 → 1
Alt Table
StatusErrorProgram
1.8b
(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.1%)

Local error

Found 4 expressions with local error:

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

series388.0ms (1.5%)

Counts
4 → 104
Calls

4 calls:

278.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))
103.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)
4.0ms
(pow.f64 (sin.f64 kx) 2)
3.0ms
(pow.f64 (sin.f64 ky) 2)

rewrite287.0ms (1.1%)

Algorithm
egg-rewrite
Rules
39×egg
39×egg
25×egg
25×egg
Counts
4 → 128
Calls

4 calls:

73.0ms
(pow.f64 (sin.f64 kx) 2)
73.0ms
(pow.f64 (sin.f64 ky) 2)
72.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))
67.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)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01729
135126
2401326
3513426
01627
133224
2382424
3496224
056
11016
29896
348086
448946
056
11016
29896
348086
448946

simplify212.0ms (0.8%)

Algorithm
egg-herbie
Rules
527×cancel-sign-sub-inv_binary64
321×fma-neg_binary64
256×unswap-sqr_binary64
211×fma-def_binary64
193×associate-*r*_binary64
Counts
232 → 213
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02746568
18506001
232685991
349115991
449825991
549705991

prune295.0ms (1.2%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2094213
Fresh000
Picked101
Done000
Total2104214
Error
0.6b
Counts
214 → 4
Alt Table
StatusErrorProgram
1.8b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (pow.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1) 1/4) 2))))
32.0b
(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))))))
24.6b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 1)))
29.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)))))
Compiler

Compiled 9314 to 6632 computations (28.8% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (/.f64 (*.f64 2 l) Om) 2)
0.4b
(pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2)
2.3b
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)
17.4b
(pow.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1) 1/4)

series5.7s (22.5%)

Counts
4 → 144
Calls

4 calls:

5.4s
(pow.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1) 1/4)
251.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)
46.0ms
(pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2)
13.0ms
(pow.f64 (/.f64 (*.f64 2 l) Om) 2)

rewrite290.0ms (1.1%)

Algorithm
egg-rewrite
Rules
48×egg
44×egg
34×egg
24×egg
Counts
4 → 150
Calls

4 calls:

95.0ms
(fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1)
80.0ms
(pow.f64 (/.f64 (*.f64 2 l) Om) 2)
66.0ms
(pow.f64 (fma.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2) 1) 1/4)
46.0ms
(pow.f64 (hypot.f64 (sin.f64 kx) (sin.f64 ky)) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01727
134826
2375126
3489226
01524
130123
2333923
3497523
4528123
0811
116011
2163711
3509611
0710
114910
2179910
3493510
4507310

simplify206.0ms (0.8%)

Algorithm
egg-herbie
Rules
457×cancel-sign-sub-inv_binary64
377×unswap-sqr_binary64
191×fma-def_binary64
188×associate-*r*_binary64
177×fma-neg_binary64
Counts
294 → 235
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02758017
18847476
234297468
349997468
449817468

prune391.0ms (1.5%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New2341235
Fresh303
Picked101
Done000
Total2381239
Error
0.0b
Counts
239 → 1
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (pow.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4) 2))))
Compiler

Compiled 11410 to 8024 computations (29.7% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4) 2)
0.2b
(pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)
1.0b
(*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))
17.4b
(pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4)

series9.7s (38.2%)

Counts
4 → 192
Calls

4 calls:

4.9s
(pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4)
4.4s
(pow.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4) 2)
189.0ms
(pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)
141.0ms
(*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))

rewrite296.0ms (1.2%)

Algorithm
egg-rewrite
Rules
51×egg
35×egg
33×egg
23×egg
Counts
4 → 142
Calls

4 calls:

81.0ms
(pow.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4) 2)
73.0ms
(pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4)
70.0ms
(pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)
68.0ms
(*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01726
136122
2413922
3526922
01217
124617
2304217
3554817
01320
127120
2322520
3585620
01826
138420
2427120
3539520

simplify198.0ms (0.8%)

Algorithm
egg-herbie
Rules
354×fma-def_binary64
313×associate-*r*_binary64
312×times-frac_binary64
299×associate-/r*_binary64
294×associate-/l*_binary64
Counts
334 → 271
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
044313672
1151212934
2531812934

prune381.0ms (1.5%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New2710271
Fresh000
Picked011
Done000
Total2711272
Error
0.0b
Counts
272 → 1
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (pow.f64 (pow.f64 (+.f64 1 (pow.f64 (*.f64 (/.f64 (*.f64 2 l) Om) (hypot.f64 (sin.f64 kx) (sin.f64 ky))) 2)) 1/4) 2))))
Compiler

Compiled 16503 to 10963 computations (33.6% saved)

regimes1.8s (6.9%)

Accuracy

Total 0.0b remaining (19.7%)

Threshold costs 0.0b (19.7%)

Counts
76 → 1
Compiler

Compiled 44247 to 37178 computations (16% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02133
12633
22533

end69.0ms (0.3%)

Remove

(sort kx ky)

Compiler

Compiled 128 to 108 computations (15.6% saved)

Profiling

Loading profile data...