\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}}-2 \cdot \left(J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)}^{2}}\right)\right)(FPCore (J K U) :precision binary64 (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))
(FPCore (J K U)
:precision binary64
(*
-2.0
(*
J
(*
(cos (/ K 2.0))
(sqrt (+ 1.0 (pow (/ U (* J (* 2.0 (cos (/ K 2.0))))) 2.0)))))))double code(double J, double K, double U) {
return ((double) (((double) (((double) (-2.0 * J)) * ((double) cos((K / 2.0))))) * ((double) sqrt(((double) (1.0 + ((double) pow((U / ((double) (((double) (2.0 * J)) * ((double) cos((K / 2.0)))))), 2.0))))))));
}
double code(double J, double K, double U) {
return ((double) (-2.0 * ((double) (J * ((double) (((double) cos((K / 2.0))) * ((double) sqrt(((double) (1.0 + ((double) pow((U / ((double) (J * ((double) (2.0 * ((double) cos((K / 2.0)))))))), 2.0))))))))))));
}



Bits error versus J



Bits error versus K



Bits error versus U
Results
Initial program 18.0
Simplified18.0
Final simplification18.0
herbie shell --seed 2020198
(FPCore (J K U)
:name "Maksimov and Kolovsky, Equation (3)"
:precision binary64
(* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))