\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}}\begin{array}{l}
\mathbf{if}\;J \le -9.781248954356997 \cdot 10^{-92}:\\
\;\;\;\;\left(\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \left(J \cdot -2\right)\\
\mathbf{elif}\;J \le 5.1968831935464863 \cdot 10^{-225}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \left(J \cdot -2\right)\\
\end{array}double f(double J, double K, double U) {
double r6551822 = -2.0;
double r6551823 = J;
double r6551824 = r6551822 * r6551823;
double r6551825 = K;
double r6551826 = 2.0;
double r6551827 = r6551825 / r6551826;
double r6551828 = cos(r6551827);
double r6551829 = r6551824 * r6551828;
double r6551830 = 1.0;
double r6551831 = U;
double r6551832 = r6551826 * r6551823;
double r6551833 = r6551832 * r6551828;
double r6551834 = r6551831 / r6551833;
double r6551835 = pow(r6551834, r6551826);
double r6551836 = r6551830 + r6551835;
double r6551837 = sqrt(r6551836);
double r6551838 = r6551829 * r6551837;
return r6551838;
}
double f(double J, double K, double U) {
double r6551839 = J;
double r6551840 = -9.781248954356997e-92;
bool r6551841 = r6551839 <= r6551840;
double r6551842 = 1.0;
double r6551843 = U;
double r6551844 = K;
double r6551845 = 2.0;
double r6551846 = r6551844 / r6551845;
double r6551847 = cos(r6551846);
double r6551848 = r6551845 * r6551839;
double r6551849 = r6551847 * r6551848;
double r6551850 = r6551843 / r6551849;
double r6551851 = r6551850 * r6551850;
double r6551852 = r6551842 + r6551851;
double r6551853 = sqrt(r6551852);
double r6551854 = r6551853 * r6551847;
double r6551855 = -2.0;
double r6551856 = r6551839 * r6551855;
double r6551857 = r6551854 * r6551856;
double r6551858 = 5.1968831935464863e-225;
bool r6551859 = r6551839 <= r6551858;
double r6551860 = -r6551843;
double r6551861 = r6551859 ? r6551860 : r6551857;
double r6551862 = r6551841 ? r6551857 : r6551861;
return r6551862;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -9.781248954356997e-92 or 5.1968831935464863e-225 < J Initial program 10.9
Simplified10.9
rmApplied associate-*r*10.9
if -9.781248954356997e-92 < J < 5.1968831935464863e-225Initial program 36.7
Simplified36.7
rmApplied associate-*r*36.7
Taylor expanded around inf 36.0
Simplified36.0
Final simplification17.1
herbie shell --seed 2019144
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
(* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))