\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{1 + \log \left(e^{{\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 r52476 = 1.0;
double r52477 = 2.0;
double r52478 = r52476 / r52477;
double r52479 = l;
double r52480 = r52477 * r52479;
double r52481 = Om;
double r52482 = r52480 / r52481;
double r52483 = pow(r52482, r52477);
double r52484 = kx;
double r52485 = sin(r52484);
double r52486 = pow(r52485, r52477);
double r52487 = ky;
double r52488 = sin(r52487);
double r52489 = pow(r52488, r52477);
double r52490 = r52486 + r52489;
double r52491 = r52483 * r52490;
double r52492 = r52476 + r52491;
double r52493 = sqrt(r52492);
double r52494 = r52476 / r52493;
double r52495 = r52476 + r52494;
double r52496 = r52478 * r52495;
double r52497 = sqrt(r52496);
return r52497;
}
double f(double l, double Om, double kx, double ky) {
double r52498 = 1.0;
double r52499 = 2.0;
double r52500 = r52498 / r52499;
double r52501 = l;
double r52502 = r52499 * r52501;
double r52503 = Om;
double r52504 = r52502 / r52503;
double r52505 = pow(r52504, r52499);
double r52506 = kx;
double r52507 = sin(r52506);
double r52508 = pow(r52507, r52499);
double r52509 = ky;
double r52510 = sin(r52509);
double r52511 = pow(r52510, r52499);
double r52512 = r52508 + r52511;
double r52513 = r52505 * r52512;
double r52514 = exp(r52513);
double r52515 = log(r52514);
double r52516 = r52498 + r52515;
double r52517 = sqrt(r52516);
double r52518 = r52498 / r52517;
double r52519 = r52498 + r52518;
double r52520 = r52500 * r52519;
double r52521 = sqrt(r52520);
return r52521;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



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