\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 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}\right)}double f(double l, double Om, double kx, double ky) {
double r37515 = 1.0;
double r37516 = 2.0;
double r37517 = r37515 / r37516;
double r37518 = l;
double r37519 = r37516 * r37518;
double r37520 = Om;
double r37521 = r37519 / r37520;
double r37522 = pow(r37521, r37516);
double r37523 = kx;
double r37524 = sin(r37523);
double r37525 = pow(r37524, r37516);
double r37526 = ky;
double r37527 = sin(r37526);
double r37528 = pow(r37527, r37516);
double r37529 = r37525 + r37528;
double r37530 = r37522 * r37529;
double r37531 = r37515 + r37530;
double r37532 = sqrt(r37531);
double r37533 = r37515 / r37532;
double r37534 = r37515 + r37533;
double r37535 = r37517 * r37534;
double r37536 = sqrt(r37535);
return r37536;
}
double f(double l, double Om, double kx, double ky) {
double r37537 = 1.0;
double r37538 = 2.0;
double r37539 = r37537 / r37538;
double r37540 = l;
double r37541 = r37538 * r37540;
double r37542 = Om;
double r37543 = r37541 / r37542;
double r37544 = 2.0;
double r37545 = r37538 / r37544;
double r37546 = pow(r37543, r37545);
double r37547 = kx;
double r37548 = sin(r37547);
double r37549 = pow(r37548, r37538);
double r37550 = ky;
double r37551 = sin(r37550);
double r37552 = pow(r37551, r37538);
double r37553 = r37549 + r37552;
double r37554 = sqrt(r37553);
double r37555 = r37546 * r37554;
double r37556 = r37555 * r37555;
double r37557 = r37537 + r37556;
double r37558 = sqrt(r37557);
double r37559 = r37537 / r37558;
double r37560 = r37537 + r37559;
double r37561 = r37539 * r37560;
double r37562 = sqrt(r37561);
return r37562;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.0
rmApplied add-sqr-sqrt1.0
Applied sqr-pow1.0
Applied unswap-sqr0.8
Final simplification0.8
herbie shell --seed 2020060
(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))))))))))