\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]{\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)}}\right) \cdot \log \left(e^{\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)}\right)}double f(double l, double Om, double kx, double ky) {
double r44315 = 1.0;
double r44316 = 2.0;
double r44317 = r44315 / r44316;
double r44318 = l;
double r44319 = r44316 * r44318;
double r44320 = Om;
double r44321 = r44319 / r44320;
double r44322 = pow(r44321, r44316);
double r44323 = kx;
double r44324 = sin(r44323);
double r44325 = pow(r44324, r44316);
double r44326 = ky;
double r44327 = sin(r44326);
double r44328 = pow(r44327, r44316);
double r44329 = r44325 + r44328;
double r44330 = r44322 * r44329;
double r44331 = r44315 + r44330;
double r44332 = sqrt(r44331);
double r44333 = r44315 / r44332;
double r44334 = r44315 + r44333;
double r44335 = r44317 * r44334;
double r44336 = sqrt(r44335);
return r44336;
}
double f(double l, double Om, double kx, double ky) {
double r44337 = 1.0;
double r44338 = 2.0;
double r44339 = r44337 / r44338;
double r44340 = l;
double r44341 = r44338 * r44340;
double r44342 = Om;
double r44343 = r44341 / r44342;
double r44344 = pow(r44343, r44338);
double r44345 = kx;
double r44346 = sin(r44345);
double r44347 = pow(r44346, r44338);
double r44348 = ky;
double r44349 = sin(r44348);
double r44350 = pow(r44349, r44338);
double r44351 = r44347 + r44350;
double r44352 = r44344 * r44351;
double r44353 = r44337 + r44352;
double r44354 = sqrt(r44353);
double r44355 = cbrt(r44354);
double r44356 = r44355 * r44355;
double r44357 = exp(r44355);
double r44358 = log(r44357);
double r44359 = r44356 * r44358;
double r44360 = r44337 / r44359;
double r44361 = r44337 + r44360;
double r44362 = r44339 * r44361;
double r44363 = sqrt(r44362);
return r44363;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-cube-cbrt1.8
rmApplied add-log-exp1.9
Final simplification1.9
herbie shell --seed 2019362 +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))))))))))