\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{1 \cdot \frac{1}{2} + \frac{1 \cdot \frac{1}{2}}{\sqrt{\mathsf{fma}\left({\left(\frac{2}{\sqrt[3]{Om}} \cdot \frac{\ell}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{2}, {\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}, 1\right)}}}double f(double l, double Om, double kx, double ky) {
double r2123656 = 1.0;
double r2123657 = 2.0;
double r2123658 = r2123656 / r2123657;
double r2123659 = l;
double r2123660 = r2123657 * r2123659;
double r2123661 = Om;
double r2123662 = r2123660 / r2123661;
double r2123663 = pow(r2123662, r2123657);
double r2123664 = kx;
double r2123665 = sin(r2123664);
double r2123666 = pow(r2123665, r2123657);
double r2123667 = ky;
double r2123668 = sin(r2123667);
double r2123669 = pow(r2123668, r2123657);
double r2123670 = r2123666 + r2123669;
double r2123671 = r2123663 * r2123670;
double r2123672 = r2123656 + r2123671;
double r2123673 = sqrt(r2123672);
double r2123674 = r2123656 / r2123673;
double r2123675 = r2123656 + r2123674;
double r2123676 = r2123658 * r2123675;
double r2123677 = sqrt(r2123676);
return r2123677;
}
double f(double l, double Om, double kx, double ky) {
double r2123678 = 1.0;
double r2123679 = 2.0;
double r2123680 = r2123678 / r2123679;
double r2123681 = r2123678 * r2123680;
double r2123682 = Om;
double r2123683 = cbrt(r2123682);
double r2123684 = r2123679 / r2123683;
double r2123685 = l;
double r2123686 = r2123683 * r2123683;
double r2123687 = r2123685 / r2123686;
double r2123688 = r2123684 * r2123687;
double r2123689 = pow(r2123688, r2123679);
double r2123690 = ky;
double r2123691 = sin(r2123690);
double r2123692 = pow(r2123691, r2123679);
double r2123693 = kx;
double r2123694 = sin(r2123693);
double r2123695 = pow(r2123694, r2123679);
double r2123696 = r2123692 + r2123695;
double r2123697 = fma(r2123689, r2123696, r2123678);
double r2123698 = sqrt(r2123697);
double r2123699 = r2123681 / r2123698;
double r2123700 = r2123681 + r2123699;
double r2123701 = sqrt(r2123700);
return r2123701;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
rmApplied add-cube-cbrt1.6
Applied *-un-lft-identity1.6
Applied times-frac1.6
Applied associate-*r*1.6
Simplified1.6
Final simplification1.6
herbie shell --seed 2019169 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))