\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 -1.7365939269127396 \cdot 10^{-172}:\\
\;\;\;\;\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 \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\mathbf{elif}\;J \le 1.2100371248519592 \cdot 10^{-256}:\\
\;\;\;\;-U\\
\mathbf{else}:\\
\;\;\;\;\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 \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\
\end{array}double f(double J, double K, double U) {
double r5791789 = -2.0;
double r5791790 = J;
double r5791791 = r5791789 * r5791790;
double r5791792 = K;
double r5791793 = 2.0;
double r5791794 = r5791792 / r5791793;
double r5791795 = cos(r5791794);
double r5791796 = r5791791 * r5791795;
double r5791797 = 1.0;
double r5791798 = U;
double r5791799 = r5791793 * r5791790;
double r5791800 = r5791799 * r5791795;
double r5791801 = r5791798 / r5791800;
double r5791802 = pow(r5791801, r5791793);
double r5791803 = r5791797 + r5791802;
double r5791804 = sqrt(r5791803);
double r5791805 = r5791796 * r5791804;
return r5791805;
}
double f(double J, double K, double U) {
double r5791806 = J;
double r5791807 = -1.7365939269127396e-172;
bool r5791808 = r5791806 <= r5791807;
double r5791809 = 1.0;
double r5791810 = U;
double r5791811 = K;
double r5791812 = 2.0;
double r5791813 = r5791811 / r5791812;
double r5791814 = cos(r5791813);
double r5791815 = r5791812 * r5791806;
double r5791816 = r5791814 * r5791815;
double r5791817 = r5791810 / r5791816;
double r5791818 = r5791817 * r5791817;
double r5791819 = r5791809 + r5791818;
double r5791820 = sqrt(r5791819);
double r5791821 = -2.0;
double r5791822 = r5791821 * r5791806;
double r5791823 = r5791814 * r5791822;
double r5791824 = r5791820 * r5791823;
double r5791825 = 1.2100371248519592e-256;
bool r5791826 = r5791806 <= r5791825;
double r5791827 = -r5791810;
double r5791828 = r5791826 ? r5791827 : r5791824;
double r5791829 = r5791808 ? r5791824 : r5791828;
return r5791829;
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
if J < -1.7365939269127396e-172 or 1.2100371248519592e-256 < J Initial program 13.0
Simplified13.0
if -1.7365939269127396e-172 < J < 1.2100371248519592e-256Initial program 40.9
Simplified40.9
Taylor expanded around -inf 33.6
Simplified33.6
Final simplification16.3
herbie shell --seed 2019151
(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)))))