\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\sqrt{\left(\frac{1}{\sqrt{1 + \left(\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}} \cdot {\left(\frac{2}{\frac{Om}{\ell}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}} \cdot {\left(\frac{2}{\frac{Om}{\ell}}\right)}^{\left(\frac{2}{2}\right)}\right)}} + 1\right) \cdot \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r51018 = 1.0;
double r51019 = 2.0;
double r51020 = r51018 / r51019;
double r51021 = l;
double r51022 = r51019 * r51021;
double r51023 = Om;
double r51024 = r51022 / r51023;
double r51025 = pow(r51024, r51019);
double r51026 = kx;
double r51027 = sin(r51026);
double r51028 = pow(r51027, r51019);
double r51029 = ky;
double r51030 = sin(r51029);
double r51031 = pow(r51030, r51019);
double r51032 = r51028 + r51031;
double r51033 = r51025 * r51032;
double r51034 = r51018 + r51033;
double r51035 = sqrt(r51034);
double r51036 = r51018 / r51035;
double r51037 = r51018 + r51036;
double r51038 = r51020 * r51037;
double r51039 = sqrt(r51038);
return r51039;
}
double f(double l, double Om, double kx, double ky) {
double r51040 = 1.0;
double r51041 = kx;
double r51042 = sin(r51041);
double r51043 = 2.0;
double r51044 = pow(r51042, r51043);
double r51045 = ky;
double r51046 = sin(r51045);
double r51047 = pow(r51046, r51043);
double r51048 = r51044 + r51047;
double r51049 = sqrt(r51048);
double r51050 = Om;
double r51051 = l;
double r51052 = r51050 / r51051;
double r51053 = r51043 / r51052;
double r51054 = 2.0;
double r51055 = r51043 / r51054;
double r51056 = pow(r51053, r51055);
double r51057 = r51049 * r51056;
double r51058 = r51057 * r51057;
double r51059 = r51040 + r51058;
double r51060 = sqrt(r51059);
double r51061 = r51040 / r51060;
double r51062 = r51061 + r51040;
double r51063 = r51040 / r51043;
double r51064 = r51062 * r51063;
double r51065 = sqrt(r51064);
return r51065;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-sqr-sqrt1.7
Applied sqr-pow1.7
Applied unswap-sqr1.4
Simplified1.4
Simplified1.4
Final simplification1.4
herbie shell --seed 2019196
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))