Details

Time bar (total: 25.9s)

analyze917.0ms (3.5%)

Algorithm
search
egg-herbie
Rules
582×associate-/l*_binary64_23
500×unswap-sqr_binary64_46
354×associate-/r/_binary64_24
324×associate-*l/_binary64_21
294×associate-*r/_binary64_20
262×associate-*l*_binary64_19 associate-*r*_binary64_18
155×distribute-rgt-in_binary64_28 distribute-lft-in_binary64_27
138×*-commutative_binary64_9
126×associate-/l/_binary64_25
60×distribute-rgt-out_binary64_31 distribute-lft-out_binary64_29
50×swap-sqr_binary64_45
45×+-commutative_binary64_8
40×sqr-pow_binary64_50
19×associate-+l+_binary64_11 associate-+r+_binary64_10
10×unpow2_binary64_143 unpow1/2_binary64_142 pow-plus_binary64_141 unpow1_binary64_136 cube-unmult_binary64_115 rem-sqrt-square_binary64_91
1-exp_binary64_122 swap-kx-ky
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-pow_binary64_167 log-rec_binary64_166 log-div_binary64_165 log-prod_binary64_164 pow-base-0_binary64_162 unpow1/3_binary64_145 unpow3_binary64_144 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 exp-prod_binary64_130 div-exp_binary64_129 rec-exp_binary64_128 prod-exp_binary64_127 exp-diff_binary64_126 exp-neg_binary64_125 exp-sum_binary64_124 e-exp-1_binary64_123 exp-1-e_binary64_121 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-mult_binary64_108 cube-div_binary64_107 cube-prod_binary64_106 cube-neg_binary64_105 rem-3cbrt-rft_binary64_104 rem-3cbrt-lft_binary64_103 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 rem-square-sqrt_binary64_90 times-frac_binary64_84 div-sub_binary64_83 neg-mul-1_binary64_74 neg-sub0_binary64_73 unsub-neg_binary64_72 sub-neg_binary64_71 mul-1-neg_binary64_70 /-rgt-identity_binary64_69 *-rgt-identity_binary64_68 *-lft-identity_binary64_67 remove-double-neg_binary64_66 sub0-neg_binary64_65 --rgt-identity_binary64_64 +-rgt-identity_binary64_63 +-lft-identity_binary64_62 mul0-rgt_binary64_61 mul0-lft_binary64_60 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 pow-sqr_binary64_51 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 difference-of-squares_binary64_47 cancel-sign-sub-inv_binary64_44 cancel-sign-sub_binary64_43 distribute-neg-frac_binary64_42 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 distribute-neg-in_binary64_39 distribute-rgt-neg-out_binary64_38 distribute-lft-neg-out_binary64_37 distribute-rgt-neg-in_binary64_36 distribute-lft-neg-in_binary64_35 distribute-rgt1-in_binary64_34 distribute-lft1-in_binary64_33 distribute-rgt-out--_binary64_32 distribute-lft-out--_binary64_30 count-2_binary64_26 associate-/r*_binary64_22 associate--r-_binary64_17 associate--l-_binary64_16 associate--l+_binary64_15 associate--r+_binary64_14 associate-+l-_binary64_13 associate-+r-_binary64_12
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
088294
1222273
2515273
32273273
44998273
044
144
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
Symmetry

(sort kx ky)

Compiler

Compiled 30 to 30 computations (0% saved)

sample103.0ms (0.4%)

Algorithm
intervals
Results
39.0ms206×body128valid
26.0ms24×body1024valid
11.0ms18×body512valid
3.0msbody256valid
Compiler

Compiled 59 to 63 computations (-6.8% saved)

simplify49.0ms (0.2%)

Algorithm
egg-herbie
Rules
575×associate-*l*_binary64_19
512×unswap-sqr_binary64_46
437×associate-*r*_binary64_18
409×distribute-rgt-out_binary64_31
369×associate-/r/_binary64_24
368×associate-/r*_binary64_22
334×associate-/l/_binary64_25
328×associate-*l/_binary64_21
299×associate-*r/_binary64_20
197×times-frac_binary64_84
128×*-commutative_binary64_9
97×associate-/l*_binary64_23
88×distribute-rgt-in_binary64_28
82×swap-sqr_binary64_45
70×distribute-lft-in_binary64_27
52×distribute-lft-out_binary64_29
41×sqr-pow_binary64_50
15×cube-unmult_binary64_115
12×pow-plus_binary64_141 cube-prod_binary64_106
+-commutative_binary64_8
unpow3_binary64_144
unpow2_binary64_143 unpow1/2_binary64_142 unpow1_binary64_136 rem-sqrt-square_binary64_91 pow-sqr_binary64_51 associate-+l+_binary64_11 associate-+r+_binary64_10
1-exp_binary64_122
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-pow_binary64_167 log-rec_binary64_166 log-div_binary64_165 log-prod_binary64_164 pow-base-0_binary64_162 unpow1/3_binary64_145 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 exp-prod_binary64_130 div-exp_binary64_129 rec-exp_binary64_128 prod-exp_binary64_127 exp-diff_binary64_126 exp-neg_binary64_125 exp-sum_binary64_124 e-exp-1_binary64_123 exp-1-e_binary64_121 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-mult_binary64_108 cube-div_binary64_107 cube-neg_binary64_105 rem-3cbrt-rft_binary64_104 rem-3cbrt-lft_binary64_103 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 rem-square-sqrt_binary64_90 div-sub_binary64_83 neg-mul-1_binary64_74 neg-sub0_binary64_73 unsub-neg_binary64_72 sub-neg_binary64_71 mul-1-neg_binary64_70 /-rgt-identity_binary64_69 *-rgt-identity_binary64_68 *-lft-identity_binary64_67 remove-double-neg_binary64_66 sub0-neg_binary64_65 --rgt-identity_binary64_64 +-rgt-identity_binary64_63 +-lft-identity_binary64_62 mul0-rgt_binary64_61 mul0-lft_binary64_60 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 difference-of-squares_binary64_47 cancel-sign-sub-inv_binary64_44 cancel-sign-sub_binary64_43 distribute-neg-frac_binary64_42 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 distribute-neg-in_binary64_39 distribute-rgt-neg-out_binary64_38 distribute-lft-neg-out_binary64_37 distribute-rgt-neg-in_binary64_36 distribute-lft-neg-in_binary64_35 distribute-rgt1-in_binary64_34 distribute-lft1-in_binary64_33 distribute-rgt-out--_binary64_32 distribute-lft-out--_binary64_30 count-2_binary64_26 associate--r-_binary64_17 associate--l-_binary64_16 associate--l+_binary64_15 associate--r+_binary64_14 associate-+l-_binary64_13 associate-+r-_binary64_12
Counts
1 → 1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02442
15639
210739
342939
4203739
5484439
6532539

prune6.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New011
Fresh101
Picked000
Done000
Total112
Error
1.3b
Counts
2 → 1
Compiler

Compiled 50 to 50 computations (0% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.3b
(pow.f64 (sin.f64 kx) 2)
0.6b
(/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2))))))
2.6b
(*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))
10.6b
(sqrt.f64 (+.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))))

rewrite362.0ms (1.4%)

Algorithm
rewrite-expression-head
Error
1.1b
Rules
33×add-sqr-sqrt_binary64_100
30×*-un-lft-identity_binary64_78
26×add-cube-cbrt_binary64_113
21×times-frac_binary64_84
19×add-exp-log_binary64_116
15×sqrt-prod_binary64_94
13×unpow-prod-down_binary64_157
12×associate-*l*_binary64_19
add-cbrt-cube_binary64_114
pow1_binary64_139 prod-exp_binary64_127 associate-/r*_binary64_22
associate-*r*_binary64_18
add-log-exp_binary64_117 sqrt-div_binary64_95 pow-exp_binary64_146 unswap-sqr_binary64_46
flip3-+_binary64_81 flip-+_binary64_52 div-exp_binary64_129 unpow2_binary64_143 sqr-pow_binary64_50 associate-/l*_binary64_23 pow-unpow_binary64_155
pow-to-exp_binary64_147 associate-*r/_binary64_20 div-inv_binary64_75 distribute-lft-out_binary64_29 associate-/r/_binary64_24
pow1/2_binary64_158 sqrt-pow1_binary64_96 rem-sqrt-square_binary64_91 cbrt-unprod_binary64_111 distribute-rgt-in_binary64_28 distribute-lft-in_binary64_27 *-commutative_binary64_9 cbrt-undiv_binary64_112 frac-2neg_binary64_89 clear-num_binary64_77 pow-pow_binary64_150
Counts
4 → 113
Calls

4 calls:

17.0ms
(*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))
11.0ms
(/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2))))))
4.0ms
(sqrt.f64 (+.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))))
3.0ms
(pow.f64 (sin.f64 kx) 2)
Compiler

Compiled 4614 to 3499 computations (24.2% saved)

series4.9s (18.9%)

Error
0.4b
Counts
4 → 56
Calls

4 calls:

2.4s
(/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2))))))
1.5s
(sqrt.f64 (+.f64 1 (*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))))
844.0ms
(*.f64 (pow.f64 (/.f64 (*.f64 2 l) Om) 2) (+.f64 (pow.f64 (sin.f64 kx) 2) (pow.f64 (sin.f64 ky) 2)))
33.0ms
(pow.f64 (sin.f64 kx) 2)
Compiler

Compiled 5955 to 5210 computations (12.5% saved)

simplify153.0ms (0.6%)

Algorithm
egg-herbie
Rules
408×distribute-rgt-in_binary64_28
396×distribute-lft-in_binary64_27
347×times-frac_binary64_84
304×unswap-sqr_binary64_46
183×associate-*r*_binary64_18
170×associate-*l*_binary64_19
159×cancel-sign-sub-inv_binary64_44
139×*-commutative_binary64_9
126×distribute-rgt-neg-in_binary64_36
109×distribute-lft-neg-in_binary64_35
96×sqr-pow_binary64_50
61×associate-*r/_binary64_20
52×distribute-rgt-out_binary64_31
51×associate-/l*_binary64_23 associate-*l/_binary64_21
49×sub-neg_binary64_71
47×exp-prod_binary64_130
46×+-commutative_binary64_8
41×associate-/r*_binary64_22
39×cube-prod_binary64_106
38×neg-sub0_binary64_73
36×neg-mul-1_binary64_74
31×distribute-lft-out_binary64_29
30×distribute-neg-frac_binary64_42
29×log-prod_binary64_164
23×*-rgt-identity_binary64_68 swap-sqr_binary64_45
20×distribute-neg-in_binary64_39
19×*-lft-identity_binary64_67
16×unpow2_binary64_143 unpow1/2_binary64_142 unpow1_binary64_136
15×associate-/l/_binary64_25
14×unpow3_binary64_144 pow-sqr_binary64_51
12×log-pow_binary64_167 distribute-lft-neg-out_binary64_37 associate-/r/_binary64_24
log-div_binary64_165 cube-mult_binary64_108
pow-plus_binary64_141 cube-unmult_binary64_115 cube-div_binary64_107 distribute-rgt-out--_binary64_32 associate-+l+_binary64_11
rem-sqrt-square_binary64_91 unsub-neg_binary64_72
distribute-rgt-neg-out_binary64_38 distribute-rgt1-in_binary64_34 associate--r+_binary64_14
/-rgt-identity_binary64_69 difference-of-squares_binary64_47 associate--l+_binary64_15 associate-+r+_binary64_10
exp-sum_binary64_124
rem-square-sqrt_binary64_90 distribute-lft-out--_binary64_30
mul-1-neg_binary64_70 difference-of-sqr-1_binary64_48
1-exp_binary64_122 exp-1-e_binary64_121 rem-3cbrt-rft_binary64_104 distribute-lft1-in_binary64_33 associate-+l-_binary64_13 associate-+r-_binary64_12
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-rec_binary64_166 pow-base-0_binary64_162 unpow1/3_binary64_145 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 div-exp_binary64_129 rec-exp_binary64_128 prod-exp_binary64_127 exp-diff_binary64_126 exp-neg_binary64_125 e-exp-1_binary64_123 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-neg_binary64_105 rem-3cbrt-lft_binary64_103 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 div-sub_binary64_83 remove-double-neg_binary64_66 sub0-neg_binary64_65 --rgt-identity_binary64_64 +-rgt-identity_binary64_63 +-lft-identity_binary64_62 mul0-rgt_binary64_61 mul0-lft_binary64_60 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 difference-of-sqr--1_binary64_49 cancel-sign-sub_binary64_43 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 count-2_binary64_26 associate--r-_binary64_17 associate--l-_binary64_16
Counts
169 → 144
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03016485
17146076
221625888
351205888

prune355.0ms (1.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1422144
Fresh000
Picked011
Done000
Total1423145
Error
0b
Counts
145 → 3
Compiler

Compiled 5257 to 3818 computations (27.4% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.6b
(/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2)))))
2.6b
(*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2))
3.5b
(log.f64 (exp.f64 (/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2)))))))
10.6b
(sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2))))

rewrite491.0ms (1.9%)

Algorithm
rewrite-expression-head
Error
0b
Rules
45×add-sqr-sqrt_binary64_100
42×*-un-lft-identity_binary64_78
39×times-frac_binary64_84
38×add-cube-cbrt_binary64_113
25×log-pow_binary64_167
24×sqrt-prod_binary64_94 exp-prod_binary64_130
18×add-exp-log_binary64_116
12×associate-*r*_binary64_18
10×unpow-prod-down_binary64_157
add-cbrt-cube_binary64_114
pow1_binary64_139 sqrt-div_binary64_95 prod-exp_binary64_127 associate-/r*_binary64_22
associate-*l*_binary64_19
add-log-exp_binary64_117 flip3-+_binary64_81 flip-+_binary64_52 associate-/r/_binary64_24 unswap-sqr_binary64_46
div-inv_binary64_75 log-prod_binary64_164 div-exp_binary64_129 pow-exp_binary64_146 associate-/l*_binary64_23
unpow2_binary64_143 sqr-pow_binary64_50 associate-*l/_binary64_21 distribute-lft-out_binary64_29
pow1/2_binary64_158 sqrt-pow1_binary64_96 rem-sqrt-square_binary64_91 rem-log-exp_binary64_119 pow-to-exp_binary64_147 cbrt-unprod_binary64_111 *-commutative_binary64_9 cbrt-undiv_binary64_112 frac-2neg_binary64_89 clear-num_binary64_77
Counts
4 → 129
Calls

4 calls:

18.0ms
(*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2))
12.0ms
(log.f64 (exp.f64 (/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2)))))))
7.0ms
(/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2)))))
4.0ms
(sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2))))
Compiler

Compiled 6069 to 4682 computations (22.9% saved)

series8.5s (32.7%)

Error
0b
Counts
4 → 68
Calls

4 calls:

3.9s
(log.f64 (exp.f64 (/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2)))))))
2.0s
(/.f64 1/2 (sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2)))))
1.6s
(sqrt.f64 (+.f64 1 (*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2))))
859.0ms
(*.f64 (+.f64 (pow.f64 (sin.f64 ky) 2) (pow.f64 (sin.f64 kx) 2)) (pow.f64 (/.f64 (*.f64 2 l) Om) 2))
Compiler

Compiled 7613 to 6698 computations (12% saved)

simplify185.0ms (0.7%)

Algorithm
egg-herbie
Rules
378×times-frac_binary64_84
366×distribute-rgt-in_binary64_28
358×distribute-lft-in_binary64_27
353×associate-/l*_binary64_23
153×unswap-sqr_binary64_46 associate-*r*_binary64_18
133×associate-*l*_binary64_19
121×*-commutative_binary64_9
110×associate-/r/_binary64_24
109×distribute-rgt-neg-in_binary64_36
107×cancel-sign-sub-inv_binary64_44
94×distribute-lft-neg-in_binary64_35
90×sqr-pow_binary64_50
53×associate-*r/_binary64_20
49×associate-/l/_binary64_25
47×sub-neg_binary64_71
46×associate-*l/_binary64_21
45×cube-prod_binary64_106 +-commutative_binary64_8
42×associate-/r*_binary64_22
38×distribute-rgt-out_binary64_31
37×neg-sub0_binary64_73
35×neg-mul-1_binary64_74
33×exp-prod_binary64_130
29×swap-sqr_binary64_45
27×log-prod_binary64_164 distribute-neg-frac_binary64_42
23×rem-log-exp_binary64_119 *-rgt-identity_binary64_68
21×*-lft-identity_binary64_67
18×distribute-lft-out_binary64_29
16×distribute-neg-in_binary64_39
15×unpow1/2_binary64_142
14×log-pow_binary64_167 unpow3_binary64_144 pow-sqr_binary64_51
12×unpow2_binary64_143 unpow1_binary64_136
11×unsub-neg_binary64_72
10×exp-sum_binary64_124 distribute-lft-neg-out_binary64_37
log-div_binary64_165 cube-mult_binary64_108
cube-div_binary64_107
cube-unmult_binary64_115 associate-+l+_binary64_11
/-rgt-identity_binary64_69 distribute-rgt1-in_binary64_34 distribute-rgt-out--_binary64_32
pow-plus_binary64_141 rem-sqrt-square_binary64_91
associate--l+_binary64_15 associate-+r+_binary64_10
mul-1-neg_binary64_70 difference-of-squares_binary64_47 distribute-rgt-neg-out_binary64_38 distribute-lft-out--_binary64_30 associate--r+_binary64_14
rem-square-sqrt_binary64_90
1-exp_binary64_122 exp-1-e_binary64_121 rem-exp-log_binary64_118 rem-3cbrt-rft_binary64_104 rem-3cbrt-lft_binary64_103 count-2_binary64_26 associate-+l-_binary64_13 associate-+r-_binary64_12
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-rec_binary64_166 pow-base-0_binary64_162 unpow1/3_binary64_145 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 div-exp_binary64_129 rec-exp_binary64_128 prod-exp_binary64_127 exp-diff_binary64_126 exp-neg_binary64_125 e-exp-1_binary64_123 exp-0_binary64_120 cube-neg_binary64_105 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 div-sub_binary64_83 remove-double-neg_binary64_66 sub0-neg_binary64_65 --rgt-identity_binary64_64 +-rgt-identity_binary64_63 +-lft-identity_binary64_62 mul0-rgt_binary64_61 mul0-lft_binary64_60 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 cancel-sign-sub_binary64_43 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 distribute-lft1-in_binary64_33 associate--r-_binary64_17 associate--l-_binary64_16
Counts
197 → 179
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03398228
16767714
218947437
350297437

prune476.0ms (1.8%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New1790179
Fresh011
Picked011
Done011
Total1793182
Error
0b
Counts
182 → 3
Compiler

Compiled 7014 to 5216 computations (25.6% saved)

localize31.0ms (0.1%)

Local error

Found 4 expressions with local error:

4.0b
(/.f64 (pow.f64 (sin.f64 ky) 2) Om)
4.0b
(/.f64 (pow.f64 (sin.f64 ky) 2) Om)
27.0b
(sqrt.f64 (/.f64 1 (*.f64 (/.f64 4 Om) (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) Om) (/.f64 (pow.f64 (sin.f64 kx) 2) Om)))))
27.1b
(sqrt.f64 (*.f64 (/.f64 4 Om) (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) Om) (/.f64 (pow.f64 (sin.f64 kx) 2) Om))))

rewrite656.0ms (2.5%)

Algorithm
rewrite-expression-head
Error
0b
Rules
51×times-frac_binary64_84
41×add-sqr-sqrt_binary64_100
40×add-cube-cbrt_binary64_113 *-un-lft-identity_binary64_78
24×unpow-prod-down_binary64_157
16×associate-/l*_binary64_23
15×sqrt-prod_binary64_94
14×add-exp-log_binary64_116
11×pow1_binary64_139
add-cbrt-cube_binary64_114 sqrt-div_binary64_95 unpow2_binary64_143 sqr-pow_binary64_50
associate-/r/_binary64_24
sqrt-pow1_binary64_96 frac-times_binary64_88 associate-*r/_binary64_20 div-exp_binary64_129 associate-/r*_binary64_22
add-log-exp_binary64_117 frac-add_binary64_86 flip3-+_binary64_81 flip-+_binary64_52
div-inv_binary64_75
pow1/2_binary64_158 pow-prod-down_binary64_149 associate-*l/_binary64_21 pow-flip_binary64_152 pow-to-exp_binary64_147 pow-exp_binary64_146 cbrt-undiv_binary64_112 frac-2neg_binary64_89 clear-num_binary64_77
inv-pow_binary64_163 rem-sqrt-square_binary64_91
Counts
4 → 144
Calls

4 calls:

49.0ms
(sqrt.f64 (/.f64 1 (*.f64 (/.f64 4 Om) (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) Om) (/.f64 (pow.f64 (sin.f64 kx) 2) Om)))))
47.0ms
(sqrt.f64 (*.f64 (/.f64 4 Om) (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) Om) (/.f64 (pow.f64 (sin.f64 kx) 2) Om))))
7.0ms
(/.f64 (pow.f64 (sin.f64 ky) 2) Om)
6.0ms
(/.f64 (pow.f64 (sin.f64 ky) 2) Om)
Compiler

Compiled 8686 to 5765 computations (33.6% saved)

series2.2s (8.5%)

Error
0b
Counts
4 → 34
Calls

4 calls:

1.0s
(sqrt.f64 (/.f64 1 (*.f64 (/.f64 4 Om) (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) Om) (/.f64 (pow.f64 (sin.f64 kx) 2) Om)))))
790.0ms
(sqrt.f64 (*.f64 (/.f64 4 Om) (+.f64 (/.f64 (pow.f64 (sin.f64 ky) 2) Om) (/.f64 (pow.f64 (sin.f64 kx) 2) Om))))
162.0ms
(/.f64 (pow.f64 (sin.f64 ky) 2) Om)
158.0ms
(/.f64 (pow.f64 (sin.f64 ky) 2) Om)
Compiler

Compiled 4804 to 3658 computations (23.9% saved)

simplify181.0ms (0.7%)

Algorithm
egg-herbie
Rules
467×associate-/l*_binary64_23
417×times-frac_binary64_84
342×associate-*l/_binary64_21
333×associate-*l*_binary64_19
330×associate-*r*_binary64_18
295×associate-/r*_binary64_22
276×associate-*r/_binary64_20
156×associate-/r/_binary64_24
131×associate-/l/_binary64_25
68×*-commutative_binary64_9
55×log-prod_binary64_164
53×distribute-rgt-in_binary64_28
50×distribute-rgt-neg-in_binary64_36
46×distribute-lft-neg-in_binary64_35 distribute-lft-in_binary64_27
45×distribute-neg-frac_binary64_42
42×sqr-pow_binary64_50
38×cube-div_binary64_107
33×log-div_binary64_165
30×unswap-sqr_binary64_46
26×log-pow_binary64_167
25×cancel-sign-sub-inv_binary64_44
22×sub-neg_binary64_71
19×cube-unmult_binary64_115
17×neg-mul-1_binary64_74 neg-sub0_binary64_73
15×unpow3_binary64_144 pow-plus_binary64_141
14×+-commutative_binary64_8
cube-mult_binary64_108 distribute-lft-neg-out_binary64_37 distribute-rgt-out_binary64_31
cube-prod_binary64_106 /-rgt-identity_binary64_69
unpow2_binary64_143 unpow1/2_binary64_142 unpow1_binary64_136 exp-prod_binary64_130 rem-sqrt-square_binary64_91 pow-sqr_binary64_51 distribute-lft-out_binary64_29
*-rgt-identity_binary64_68 distribute-rgt-neg-out_binary64_38
rem-square-sqrt_binary64_90 div-sub_binary64_83 *-lft-identity_binary64_67
log-rec_binary64_166 distribute-rgt-out--_binary64_32
1-exp_binary64_122 rem-3cbrt-rft_binary64_104 difference-of-squares_binary64_47 associate-+l-_binary64_13 associate-+r-_binary64_12 associate-+l+_binary64_11
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 pow-base-0_binary64_162 unpow1/3_binary64_145 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 div-exp_binary64_129 rec-exp_binary64_128 prod-exp_binary64_127 exp-diff_binary64_126 exp-neg_binary64_125 exp-sum_binary64_124 e-exp-1_binary64_123 exp-1-e_binary64_121 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-neg_binary64_105 rem-3cbrt-lft_binary64_103 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 unsub-neg_binary64_72 mul-1-neg_binary64_70 remove-double-neg_binary64_66 sub0-neg_binary64_65 --rgt-identity_binary64_64 +-rgt-identity_binary64_63 +-lft-identity_binary64_62 mul0-rgt_binary64_61 mul0-lft_binary64_60 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 swap-sqr_binary64_45 cancel-sign-sub_binary64_43 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 distribute-neg-in_binary64_39 distribute-rgt1-in_binary64_34 distribute-lft1-in_binary64_33 distribute-lft-out--_binary64_30 count-2_binary64_26 associate--r-_binary64_17 associate--l-_binary64_16 associate--l+_binary64_15 associate--r+_binary64_14 associate-+r+_binary64_10
Counts
178 → 109
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02324064
14713659
211783627
348003627
449993627
549683627

prune508.0ms (2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1090109
Fresh000
Picked011
Done022
Total1093112
Error
0b
Counts
112 → 3
Compiler

Compiled 6151 to 3994 computations (35.1% saved)

regimes1.9s (7.2%)

Accuracy

Total 0.2b remaining (80.1%)

Threshold costs 0.2b (80.1%)

Compiler

Compiled 19500 to 18570 computations (4.8% saved)

bsearch3.0ms (0%)

Compiler

Compiled 7 to 9 computations (-28.6% saved)

simplify19.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_9 +-commutative_binary64_8
1-exp_binary64_122
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 unpow1_binary64_136 e-exp-1_binary64_123 exp-1-e_binary64_121 exp-0_binary64_120 sqr-abs_binary64_93 sqr-neg_binary64_92 neg-mul-1_binary64_74 neg-sub0_binary64_73 unsub-neg_binary64_72 sub-neg_binary64_71 mul-1-neg_binary64_70 /-rgt-identity_binary64_69 *-rgt-identity_binary64_68 *-lft-identity_binary64_67 remove-double-neg_binary64_66 sub0-neg_binary64_65 --rgt-identity_binary64_64 +-rgt-identity_binary64_63 +-lft-identity_binary64_62 cancel-sign-sub-inv_binary64_44 cancel-sign-sub_binary64_43 distribute-neg-frac_binary64_42 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 distribute-neg-in_binary64_39 distribute-rgt-neg-out_binary64_38 distribute-lft-neg-out_binary64_37 distribute-rgt-neg-in_binary64_36 distribute-lft-neg-in_binary64_35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044135
158135
256135
Remove

(sort kx ky)

Compiler

Compiled 174 to 138 computations (20.7% saved)

end0.0ms (0%)

sample3.9s (15.1%)

Algorithm
intervals
Results
1.2s6338×body128valid
735.0ms793×body1024valid
338.0ms524×body512valid
141.0ms345×body256valid
Compiler

Compiled 1066 to 991 computations (7% saved)

Profiling

Loading profile data...