\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(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}, 1\right)}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r553945 = 1.0;
double r553946 = 2.0;
double r553947 = r553945 / r553946;
double r553948 = l;
double r553949 = r553946 * r553948;
double r553950 = Om;
double r553951 = r553949 / r553950;
double r553952 = pow(r553951, r553946);
double r553953 = kx;
double r553954 = sin(r553953);
double r553955 = pow(r553954, r553946);
double r553956 = ky;
double r553957 = sin(r553956);
double r553958 = pow(r553957, r553946);
double r553959 = r553955 + r553958;
double r553960 = r553952 * r553959;
double r553961 = r553945 + r553960;
double r553962 = sqrt(r553961);
double r553963 = r553945 / r553962;
double r553964 = r553945 + r553963;
double r553965 = r553947 * r553964;
double r553966 = sqrt(r553965);
return r553966;
}
double f(double l, double Om, double kx, double ky) {
double r553967 = 0.5;
double r553968 = 4.0;
double r553969 = kx;
double r553970 = sin(r553969);
double r553971 = Om;
double r553972 = l;
double r553973 = r553971 / r553972;
double r553974 = r553970 / r553973;
double r553975 = r553974 * r553974;
double r553976 = ky;
double r553977 = sin(r553976);
double r553978 = r553977 * r553972;
double r553979 = r553978 / r553971;
double r553980 = r553979 * r553979;
double r553981 = r553975 + r553980;
double r553982 = 1.0;
double r553983 = fma(r553968, r553981, r553982);
double r553984 = sqrt(r553983);
double r553985 = r553967 / r553984;
double r553986 = r553985 + r553967;
double r553987 = sqrt(r553986);
return r553987;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



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