\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{\frac{1}{2}}{\sqrt{\log \left(e^{\mathsf{fma}\left(4, \left(\frac{\ell \cdot \sin kx}{Om} \cdot \frac{\ell \cdot \sin kx}{Om} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}\right), 1\right)}\right)}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r6044741 = 1.0;
double r6044742 = 2.0;
double r6044743 = r6044741 / r6044742;
double r6044744 = l;
double r6044745 = r6044742 * r6044744;
double r6044746 = Om;
double r6044747 = r6044745 / r6044746;
double r6044748 = pow(r6044747, r6044742);
double r6044749 = kx;
double r6044750 = sin(r6044749);
double r6044751 = pow(r6044750, r6044742);
double r6044752 = ky;
double r6044753 = sin(r6044752);
double r6044754 = pow(r6044753, r6044742);
double r6044755 = r6044751 + r6044754;
double r6044756 = r6044748 * r6044755;
double r6044757 = r6044741 + r6044756;
double r6044758 = sqrt(r6044757);
double r6044759 = r6044741 / r6044758;
double r6044760 = r6044741 + r6044759;
double r6044761 = r6044743 * r6044760;
double r6044762 = sqrt(r6044761);
return r6044762;
}
double f(double l, double Om, double kx, double ky) {
double r6044763 = 0.5;
double r6044764 = 4.0;
double r6044765 = l;
double r6044766 = kx;
double r6044767 = sin(r6044766);
double r6044768 = r6044765 * r6044767;
double r6044769 = Om;
double r6044770 = r6044768 / r6044769;
double r6044771 = r6044770 * r6044770;
double r6044772 = ky;
double r6044773 = sin(r6044772);
double r6044774 = r6044773 * r6044765;
double r6044775 = r6044774 / r6044769;
double r6044776 = r6044775 * r6044775;
double r6044777 = r6044771 + r6044776;
double r6044778 = 1.0;
double r6044779 = fma(r6044764, r6044777, r6044778);
double r6044780 = exp(r6044779);
double r6044781 = log(r6044780);
double r6044782 = sqrt(r6044781);
double r6044783 = r6044763 / r6044782;
double r6044784 = r6044783 + r6044763;
double r6044785 = sqrt(r6044784);
return r6044785;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.8
Simplified1.8
rmApplied add-log-exp1.9
Taylor expanded around inf 16.2
Simplified0.9
Final simplification0.9
herbie shell --seed 2019124 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))