\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 \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 r64392 = 1.0;
double r64393 = 2.0;
double r64394 = r64392 / r64393;
double r64395 = l;
double r64396 = r64393 * r64395;
double r64397 = Om;
double r64398 = r64396 / r64397;
double r64399 = pow(r64398, r64393);
double r64400 = kx;
double r64401 = sin(r64400);
double r64402 = pow(r64401, r64393);
double r64403 = ky;
double r64404 = sin(r64403);
double r64405 = pow(r64404, r64393);
double r64406 = r64402 + r64405;
double r64407 = r64399 * r64406;
double r64408 = r64392 + r64407;
double r64409 = sqrt(r64408);
double r64410 = r64392 / r64409;
double r64411 = r64392 + r64410;
double r64412 = r64394 * r64411;
double r64413 = sqrt(r64412);
return r64413;
}
double f(double l, double Om, double kx, double ky) {
double r64414 = 1.0;
double r64415 = 2.0;
double r64416 = r64414 / r64415;
double r64417 = l;
double r64418 = r64415 * r64417;
double r64419 = Om;
double r64420 = r64418 / r64419;
double r64421 = pow(r64420, r64415);
double r64422 = kx;
double r64423 = sin(r64422);
double r64424 = pow(r64423, r64415);
double r64425 = ky;
double r64426 = sin(r64425);
double r64427 = pow(r64426, r64415);
double r64428 = r64424 + r64427;
double r64429 = r64421 * r64428;
double r64430 = r64414 + r64429;
double r64431 = sqrt(r64430);
double r64432 = cbrt(r64431);
double r64433 = r64432 * r64432;
double r64434 = r64433 * r64432;
double r64435 = r64414 / r64434;
double r64436 = r64414 + r64435;
double r64437 = r64416 * r64436;
double r64438 = sqrt(r64437);
return r64438;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
Final simplification1.6
herbie shell --seed 2020024
(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))))))))))