\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 r149628 = K;
double r149629 = m;
double r149630 = n;
double r149631 = r149629 + r149630;
double r149632 = r149628 * r149631;
double r149633 = 2.0;
double r149634 = r149632 / r149633;
double r149635 = M;
double r149636 = r149634 - r149635;
double r149637 = cos(r149636);
double r149638 = r149631 / r149633;
double r149639 = r149638 - r149635;
double r149640 = pow(r149639, r149633);
double r149641 = -r149640;
double r149642 = l;
double r149643 = r149629 - r149630;
double r149644 = fabs(r149643);
double r149645 = r149642 - r149644;
double r149646 = r149641 - r149645;
double r149647 = exp(r149646);
double r149648 = r149637 * r149647;
return r149648;
}
double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
double r149649 = m;
double r149650 = n;
double r149651 = r149649 + r149650;
double r149652 = 2.0;
double r149653 = r149651 / r149652;
double r149654 = M;
double r149655 = r149653 - r149654;
double r149656 = pow(r149655, r149652);
double r149657 = cbrt(r149656);
double r149658 = r149657 * r149657;
double r149659 = cbrt(r149658);
double r149660 = r149659 * r149659;
double r149661 = r149660 * r149659;
double r149662 = cbrt(r149655);
double r149663 = r149662 * r149662;
double r149664 = pow(r149663, r149652);
double r149665 = cbrt(r149664);
double r149666 = pow(r149662, r149652);
double r149667 = cbrt(r149666);
double r149668 = r149665 * r149667;
double r149669 = r149661 * r149668;
double r149670 = -r149669;
double r149671 = l;
double r149672 = r149649 - r149650;
double r149673 = fabs(r149672);
double r149674 = r149671 - r149673;
double r149675 = r149670 - r149674;
double r149676 = exp(r149675);
return r149676;
}



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