\sqrt{\frac{1.0}{2.0} \cdot \left(1.0 + \frac{1.0}{\sqrt{1.0 + {\left(\frac{2.0 \cdot \ell}{Om}\right)}^{2.0} \cdot \left({\left(\sin kx\right)}^{2.0} + {\left(\sin ky\right)}^{2.0}\right)}}\right)}\sqrt{1.0 \cdot \frac{1.0}{2.0} + \frac{\frac{1.0 \cdot \frac{1.0}{2.0}}{\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}\right)}}{\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}\right)}}double f(double l, double Om, double kx, double ky) {
double r2005663 = 1.0;
double r2005664 = 2.0;
double r2005665 = r2005663 / r2005664;
double r2005666 = l;
double r2005667 = r2005664 * r2005666;
double r2005668 = Om;
double r2005669 = r2005667 / r2005668;
double r2005670 = pow(r2005669, r2005664);
double r2005671 = kx;
double r2005672 = sin(r2005671);
double r2005673 = pow(r2005672, r2005664);
double r2005674 = ky;
double r2005675 = sin(r2005674);
double r2005676 = pow(r2005675, r2005664);
double r2005677 = r2005673 + r2005676;
double r2005678 = r2005670 * r2005677;
double r2005679 = r2005663 + r2005678;
double r2005680 = sqrt(r2005679);
double r2005681 = r2005663 / r2005680;
double r2005682 = r2005663 + r2005681;
double r2005683 = r2005665 * r2005682;
double r2005684 = sqrt(r2005683);
return r2005684;
}
double f(double l, double Om, double kx, double ky) {
double r2005685 = 1.0;
double r2005686 = 2.0;
double r2005687 = r2005685 / r2005686;
double r2005688 = r2005685 * r2005687;
double r2005689 = Om;
double r2005690 = r2005686 / r2005689;
double r2005691 = l;
double r2005692 = r2005690 * r2005691;
double r2005693 = pow(r2005692, r2005686);
double r2005694 = ky;
double r2005695 = sin(r2005694);
double r2005696 = pow(r2005695, r2005686);
double r2005697 = kx;
double r2005698 = sin(r2005697);
double r2005699 = pow(r2005698, r2005686);
double r2005700 = r2005696 + r2005699;
double r2005701 = fma(r2005693, r2005700, r2005685);
double r2005702 = sqrt(r2005701);
double r2005703 = sqrt(r2005702);
double r2005704 = cbrt(r2005703);
double r2005705 = r2005704 * r2005704;
double r2005706 = r2005704 * r2005705;
double r2005707 = r2005688 / r2005706;
double r2005708 = r2005707 / r2005706;
double r2005709 = r2005688 + r2005708;
double r2005710 = sqrt(r2005709);
return r2005710;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
rmApplied add-sqr-sqrt1.6
Applied sqrt-prod1.6
Applied associate-/r*1.6
rmApplied add-cube-cbrt1.6
rmApplied add-cube-cbrt1.6
Final simplification1.6
herbie shell --seed 2019165 +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))))))))))