\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}{\left|\sqrt[3]{1 + {\left(\sqrt[3]{\frac{2 \cdot \ell}{Om}} \cdot \sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)}\right| \cdot \sqrt{\sqrt[3]{1 + {\left(\sqrt[3]{\frac{2 \cdot \ell}{Om}} \cdot \sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sqrt[3]{\frac{2 \cdot \ell}{Om}}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r38285 = 1.0;
double r38286 = 2.0;
double r38287 = r38285 / r38286;
double r38288 = l;
double r38289 = r38286 * r38288;
double r38290 = Om;
double r38291 = r38289 / r38290;
double r38292 = pow(r38291, r38286);
double r38293 = kx;
double r38294 = sin(r38293);
double r38295 = pow(r38294, r38286);
double r38296 = ky;
double r38297 = sin(r38296);
double r38298 = pow(r38297, r38286);
double r38299 = r38295 + r38298;
double r38300 = r38292 * r38299;
double r38301 = r38285 + r38300;
double r38302 = sqrt(r38301);
double r38303 = r38285 / r38302;
double r38304 = r38285 + r38303;
double r38305 = r38287 * r38304;
double r38306 = sqrt(r38305);
return r38306;
}
double f(double l, double Om, double kx, double ky) {
double r38307 = 1.0;
double r38308 = 2.0;
double r38309 = r38307 / r38308;
double r38310 = l;
double r38311 = r38308 * r38310;
double r38312 = Om;
double r38313 = r38311 / r38312;
double r38314 = cbrt(r38313);
double r38315 = r38314 * r38314;
double r38316 = pow(r38315, r38308);
double r38317 = pow(r38314, r38308);
double r38318 = kx;
double r38319 = sin(r38318);
double r38320 = pow(r38319, r38308);
double r38321 = ky;
double r38322 = sin(r38321);
double r38323 = pow(r38322, r38308);
double r38324 = r38320 + r38323;
double r38325 = r38317 * r38324;
double r38326 = r38316 * r38325;
double r38327 = r38307 + r38326;
double r38328 = cbrt(r38327);
double r38329 = fabs(r38328);
double r38330 = sqrt(r38328);
double r38331 = r38329 * r38330;
double r38332 = r38307 / r38331;
double r38333 = r38307 + r38332;
double r38334 = r38309 * r38333;
double r38335 = sqrt(r38334);
return r38335;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.5
rmApplied add-cube-cbrt1.5
Applied unpow-prod-down1.5
Applied associate-*l*1.4
rmApplied add-cube-cbrt1.4
Applied sqrt-prod1.4
Simplified1.4
Final simplification1.4
herbie shell --seed 2019308
(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))))))))))