\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 r162166 = K;
double r162167 = m;
double r162168 = n;
double r162169 = r162167 + r162168;
double r162170 = r162166 * r162169;
double r162171 = 2.0;
double r162172 = r162170 / r162171;
double r162173 = M;
double r162174 = r162172 - r162173;
double r162175 = cos(r162174);
double r162176 = r162169 / r162171;
double r162177 = r162176 - r162173;
double r162178 = pow(r162177, r162171);
double r162179 = -r162178;
double r162180 = l;
double r162181 = r162167 - r162168;
double r162182 = fabs(r162181);
double r162183 = r162180 - r162182;
double r162184 = r162179 - r162183;
double r162185 = exp(r162184);
double r162186 = r162175 * r162185;
return r162186;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r162187 = m;
double r162188 = n;
double r162189 = r162187 + r162188;
double r162190 = 2.0;
double r162191 = r162189 / r162190;
double r162192 = M;
double r162193 = r162191 - r162192;
double r162194 = pow(r162193, r162190);
double r162195 = cbrt(r162194);
double r162196 = r162195 * r162195;
double r162197 = cbrt(r162196);
double r162198 = r162197 * r162197;
double r162199 = r162198 * r162197;
double r162200 = cbrt(r162193);
double r162201 = r162200 * r162200;
double r162202 = pow(r162201, r162190);
double r162203 = cbrt(r162202);
double r162204 = pow(r162200, r162190);
double r162205 = cbrt(r162204);
double r162206 = r162203 * r162205;
double r162207 = r162199 * r162206;
double r162208 = -r162207;
double r162209 = l;
double r162210 = r162187 - r162188;
double r162211 = fabs(r162210);
double r162212 = r162209 - r162211;
double r162213 = r162208 - r162212;
double r162214 = exp(r162213);
return r162214;
}



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)))))))