\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 r44745 = 1.0;
double r44746 = 2.0;
double r44747 = r44745 / r44746;
double r44748 = l;
double r44749 = r44746 * r44748;
double r44750 = Om;
double r44751 = r44749 / r44750;
double r44752 = pow(r44751, r44746);
double r44753 = kx;
double r44754 = sin(r44753);
double r44755 = pow(r44754, r44746);
double r44756 = ky;
double r44757 = sin(r44756);
double r44758 = pow(r44757, r44746);
double r44759 = r44755 + r44758;
double r44760 = r44752 * r44759;
double r44761 = r44745 + r44760;
double r44762 = sqrt(r44761);
double r44763 = r44745 / r44762;
double r44764 = r44745 + r44763;
double r44765 = r44747 * r44764;
double r44766 = sqrt(r44765);
return r44766;
}
double f(double l, double Om, double kx, double ky) {
double r44767 = 1.0;
double r44768 = 2.0;
double r44769 = r44767 / r44768;
double r44770 = l;
double r44771 = r44768 * r44770;
double r44772 = Om;
double r44773 = r44771 / r44772;
double r44774 = 2.0;
double r44775 = r44768 / r44774;
double r44776 = pow(r44773, r44775);
double r44777 = kx;
double r44778 = sin(r44777);
double r44779 = pow(r44778, r44768);
double r44780 = ky;
double r44781 = sin(r44780);
double r44782 = pow(r44781, r44768);
double r44783 = r44779 + r44782;
double r44784 = sqrt(r44783);
double r44785 = r44776 * r44784;
double r44786 = r44785 * r44785;
double r44787 = r44767 + r44786;
double r44788 = sqrt(r44787);
double r44789 = r44767 / r44788;
double r44790 = r44767 + r44789;
double r44791 = r44769 * r44790;
double r44792 = sqrt(r44791);
return r44792;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
rmApplied add-sqr-sqrt1.7
Applied sqr-pow1.7
Applied unswap-sqr1.4
Final simplification1.4
herbie shell --seed 2020020
(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))))))))))