\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{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\sin kx}{\frac{Om}{\ell}}, \frac{\sin kx}{\frac{Om}{\ell}}, \left(\sin ky \cdot \frac{\ell}{Om}\right) \cdot \left(\sin ky \cdot \frac{\ell}{Om}\right)\right), 4, 1\right)}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r1371856 = 1.0;
double r1371857 = 2.0;
double r1371858 = r1371856 / r1371857;
double r1371859 = l;
double r1371860 = r1371857 * r1371859;
double r1371861 = Om;
double r1371862 = r1371860 / r1371861;
double r1371863 = pow(r1371862, r1371857);
double r1371864 = kx;
double r1371865 = sin(r1371864);
double r1371866 = pow(r1371865, r1371857);
double r1371867 = ky;
double r1371868 = sin(r1371867);
double r1371869 = pow(r1371868, r1371857);
double r1371870 = r1371866 + r1371869;
double r1371871 = r1371863 * r1371870;
double r1371872 = r1371856 + r1371871;
double r1371873 = sqrt(r1371872);
double r1371874 = r1371856 / r1371873;
double r1371875 = r1371856 + r1371874;
double r1371876 = r1371858 * r1371875;
double r1371877 = sqrt(r1371876);
return r1371877;
}
double f(double l, double Om, double kx, double ky) {
double r1371878 = 0.5;
double r1371879 = kx;
double r1371880 = sin(r1371879);
double r1371881 = Om;
double r1371882 = l;
double r1371883 = r1371881 / r1371882;
double r1371884 = r1371880 / r1371883;
double r1371885 = ky;
double r1371886 = sin(r1371885);
double r1371887 = r1371882 / r1371881;
double r1371888 = r1371886 * r1371887;
double r1371889 = r1371888 * r1371888;
double r1371890 = fma(r1371884, r1371884, r1371889);
double r1371891 = 4.0;
double r1371892 = 1.0;
double r1371893 = fma(r1371890, r1371891, r1371892);
double r1371894 = sqrt(r1371893);
double r1371895 = r1371878 / r1371894;
double r1371896 = r1371895 + r1371878;
double r1371897 = sqrt(r1371896);
return r1371897;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
rmApplied insert-posit162.3
Taylor expanded around inf 16.3
Simplified0.5
Final simplification0.5
herbie shell --seed 2019158 +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))))))))))