Average Error: 18.3 → 13.8
Time: 15.2s
Precision: 64
\[\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}\;\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}} = -\infty \lor \neg \left(\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}} \le 3.074985247970306900390183602745100928272 \cdot 10^{300}\right):\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\ \end{array}\]
\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}\;\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}} = -\infty \lor \neg \left(\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}} \le 3.074985247970306900390183602745100928272 \cdot 10^{300}\right):\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\

\mathbf{else}:\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\

\end{array}
double f(double J, double K, double U) {
        double r245975 = -2.0;
        double r245976 = J;
        double r245977 = r245975 * r245976;
        double r245978 = K;
        double r245979 = 2.0;
        double r245980 = r245978 / r245979;
        double r245981 = cos(r245980);
        double r245982 = r245977 * r245981;
        double r245983 = 1.0;
        double r245984 = U;
        double r245985 = r245979 * r245976;
        double r245986 = r245985 * r245981;
        double r245987 = r245984 / r245986;
        double r245988 = pow(r245987, r245979);
        double r245989 = r245983 + r245988;
        double r245990 = sqrt(r245989);
        double r245991 = r245982 * r245990;
        return r245991;
}

double f(double J, double K, double U) {
        double r245992 = -2.0;
        double r245993 = J;
        double r245994 = r245992 * r245993;
        double r245995 = K;
        double r245996 = 2.0;
        double r245997 = r245995 / r245996;
        double r245998 = cos(r245997);
        double r245999 = r245994 * r245998;
        double r246000 = 1.0;
        double r246001 = U;
        double r246002 = r245996 * r245993;
        double r246003 = r246002 * r245998;
        double r246004 = r246001 / r246003;
        double r246005 = pow(r246004, r245996);
        double r246006 = r246000 + r246005;
        double r246007 = sqrt(r246006);
        double r246008 = r245999 * r246007;
        double r246009 = -inf.0;
        bool r246010 = r246008 <= r246009;
        double r246011 = 3.074985247970307e+300;
        bool r246012 = r246008 <= r246011;
        double r246013 = !r246012;
        bool r246014 = r246010 || r246013;
        double r246015 = 0.25;
        double r246016 = sqrt(r246015);
        double r246017 = r246016 * r246001;
        double r246018 = 0.5;
        double r246019 = r246018 * r245995;
        double r246020 = cos(r246019);
        double r246021 = r245993 * r246020;
        double r246022 = r246017 / r246021;
        double r246023 = r245999 * r246022;
        double r246024 = r245998 * r246007;
        double r246025 = r245994 * r246024;
        double r246026 = r246014 ? r246023 : r246025;
        return r246026;
}

Error

Bits error versus J

Bits error versus K

Bits error versus U

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < -inf.0 or 3.074985247970307e+300 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0))))

    1. Initial program 62.2

      \[\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. Taylor expanded around inf 46.6

      \[\leadsto \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \color{blue}{\frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}}\]

    if -inf.0 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 3.074985247970307e+300

    1. Initial program 0.1

      \[\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. Using strategy rm
    3. Applied associate-*l*0.2

      \[\leadsto \color{blue}{\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification13.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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}} = -\infty \lor \neg \left(\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}} \le 3.074985247970306900390183602745100928272 \cdot 10^{300}\right):\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019351 
(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)))))