\cos \left(\frac{K \cdot \left(m + n\right)}{2} - M\right) \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}e^{\left(-\left(\left(\sqrt[3]{\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}} \cdot \sqrt[3]{\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}}\right) \cdot \sqrt[3]{\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}}\right) \cdot \left(\sqrt[3]{{\left(\sqrt[3]{\frac{m + n}{2} - M} \cdot \sqrt[3]{\frac{m + n}{2} - M}\right)}^{2}} \cdot \sqrt[3]{{\left(\sqrt[3]{\frac{m + n}{2} - M}\right)}^{2}}\right)\right) - \left(\ell - \left|m - n\right|\right)}double f(double K, double m, double n, double M, double l) {
double r174998 = K;
double r174999 = m;
double r175000 = n;
double r175001 = r174999 + r175000;
double r175002 = r174998 * r175001;
double r175003 = 2.0;
double r175004 = r175002 / r175003;
double r175005 = M;
double r175006 = r175004 - r175005;
double r175007 = cos(r175006);
double r175008 = r175001 / r175003;
double r175009 = r175008 - r175005;
double r175010 = pow(r175009, r175003);
double r175011 = -r175010;
double r175012 = l;
double r175013 = r174999 - r175000;
double r175014 = fabs(r175013);
double r175015 = r175012 - r175014;
double r175016 = r175011 - r175015;
double r175017 = exp(r175016);
double r175018 = r175007 * r175017;
return r175018;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r175019 = m;
double r175020 = n;
double r175021 = r175019 + r175020;
double r175022 = 2.0;
double r175023 = r175021 / r175022;
double r175024 = M;
double r175025 = r175023 - r175024;
double r175026 = pow(r175025, r175022);
double r175027 = cbrt(r175026);
double r175028 = r175027 * r175027;
double r175029 = cbrt(r175028);
double r175030 = r175029 * r175029;
double r175031 = r175030 * r175029;
double r175032 = cbrt(r175025);
double r175033 = r175032 * r175032;
double r175034 = pow(r175033, r175022);
double r175035 = cbrt(r175034);
double r175036 = pow(r175032, r175022);
double r175037 = cbrt(r175036);
double r175038 = r175035 * r175037;
double r175039 = r175031 * r175038;
double r175040 = -r175039;
double r175041 = l;
double r175042 = r175019 - r175020;
double r175043 = fabs(r175042);
double r175044 = r175041 - r175043;
double r175045 = r175040 - r175044;
double r175046 = exp(r175045);
return r175046;
}



Bits error versus K



Bits error versus m



Bits error versus n



Bits error versus M



Bits error versus l
Results
Initial program 15.6
Taylor expanded around 0 1.2
rmApplied add-cube-cbrt1.2
rmApplied add-cube-cbrt1.2
rmApplied add-cube-cbrt1.2
Applied unpow-prod-down1.2
Applied cbrt-prod1.2
Final simplification1.2
herbie shell --seed 2020001 +o rules:numerics
(FPCore (K m n M l)
:name "Maksimov and Kolovsky, Equation (32)"
:precision binary64
(* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))