\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(\sqrt{1}, {\left(\frac{1}{2 \cdot J} \cdot \frac{U}{\cos \left(\frac{K}{2}\right)}\right)}^{\left(\frac{2}{2}\right)}\right)\right)double f(double J, double K, double U) {
double r150825 = -2.0;
double r150826 = J;
double r150827 = r150825 * r150826;
double r150828 = K;
double r150829 = 2.0;
double r150830 = r150828 / r150829;
double r150831 = cos(r150830);
double r150832 = r150827 * r150831;
double r150833 = 1.0;
double r150834 = U;
double r150835 = r150829 * r150826;
double r150836 = r150835 * r150831;
double r150837 = r150834 / r150836;
double r150838 = pow(r150837, r150829);
double r150839 = r150833 + r150838;
double r150840 = sqrt(r150839);
double r150841 = r150832 * r150840;
return r150841;
}
double f(double J, double K, double U) {
double r150842 = -2.0;
double r150843 = J;
double r150844 = r150842 * r150843;
double r150845 = K;
double r150846 = 2.0;
double r150847 = r150845 / r150846;
double r150848 = cos(r150847);
double r150849 = 1.0;
double r150850 = sqrt(r150849);
double r150851 = 1.0;
double r150852 = r150846 * r150843;
double r150853 = r150851 / r150852;
double r150854 = U;
double r150855 = r150854 / r150848;
double r150856 = r150853 * r150855;
double r150857 = 2.0;
double r150858 = r150846 / r150857;
double r150859 = pow(r150856, r150858);
double r150860 = hypot(r150850, r150859);
double r150861 = r150848 * r150860;
double r150862 = r150844 * r150861;
return r150862;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 17.3
rmApplied sqr-pow17.3
Applied add-sqr-sqrt17.3
Applied hypot-def7.6
rmApplied associate-*l*7.7
rmApplied *-un-lft-identity7.7
Applied times-frac7.8
Final simplification7.8
herbie shell --seed 2020020 +o rules:numerics
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
:precision binary64
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))