\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{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}} \cdot \sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}} \cdot \frac{1}{\sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r47206 = 1.0;
double r47207 = 2.0;
double r47208 = r47206 / r47207;
double r47209 = l;
double r47210 = r47207 * r47209;
double r47211 = Om;
double r47212 = r47210 / r47211;
double r47213 = pow(r47212, r47207);
double r47214 = kx;
double r47215 = sin(r47214);
double r47216 = pow(r47215, r47207);
double r47217 = ky;
double r47218 = sin(r47217);
double r47219 = pow(r47218, r47207);
double r47220 = r47216 + r47219;
double r47221 = r47213 * r47220;
double r47222 = r47206 + r47221;
double r47223 = sqrt(r47222);
double r47224 = r47206 / r47223;
double r47225 = r47206 + r47224;
double r47226 = r47208 * r47225;
double r47227 = sqrt(r47226);
return r47227;
}
double f(double l, double Om, double kx, double ky) {
double r47228 = 1.0;
double r47229 = 2.0;
double r47230 = r47228 / r47229;
double r47231 = 1.0;
double r47232 = l;
double r47233 = r47229 * r47232;
double r47234 = Om;
double r47235 = r47233 / r47234;
double r47236 = pow(r47235, r47229);
double r47237 = kx;
double r47238 = sin(r47237);
double r47239 = pow(r47238, r47229);
double r47240 = ky;
double r47241 = sin(r47240);
double r47242 = pow(r47241, r47229);
double r47243 = r47239 + r47242;
double r47244 = r47236 * r47243;
double r47245 = r47228 + r47244;
double r47246 = sqrt(r47245);
double r47247 = cbrt(r47246);
double r47248 = r47247 * r47247;
double r47249 = r47231 / r47248;
double r47250 = r47228 / r47247;
double r47251 = r47249 * r47250;
double r47252 = r47228 + r47251;
double r47253 = r47230 * r47252;
double r47254 = sqrt(r47253);
return r47254;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-cube-cbrt1.7
Applied *-un-lft-identity1.7
Applied times-frac1.7
Final simplification1.7
herbie shell --seed 2020001 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
:precision binary64
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))