Average Error: 18.1 → 13.1
Time: 7.6s
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 6.2122170012972379 \cdot 10^{307}\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(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(U \cdot \frac{1}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\\ \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 6.2122170012972379 \cdot 10^{307}\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(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(U \cdot \frac{1}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\\

\end{array}
double f(double J, double K, double U) {
        double r241506 = -2.0;
        double r241507 = J;
        double r241508 = r241506 * r241507;
        double r241509 = K;
        double r241510 = 2.0;
        double r241511 = r241509 / r241510;
        double r241512 = cos(r241511);
        double r241513 = r241508 * r241512;
        double r241514 = 1.0;
        double r241515 = U;
        double r241516 = r241510 * r241507;
        double r241517 = r241516 * r241512;
        double r241518 = r241515 / r241517;
        double r241519 = pow(r241518, r241510);
        double r241520 = r241514 + r241519;
        double r241521 = sqrt(r241520);
        double r241522 = r241513 * r241521;
        return r241522;
}

double f(double J, double K, double U) {
        double r241523 = -2.0;
        double r241524 = J;
        double r241525 = r241523 * r241524;
        double r241526 = K;
        double r241527 = 2.0;
        double r241528 = r241526 / r241527;
        double r241529 = cos(r241528);
        double r241530 = r241525 * r241529;
        double r241531 = 1.0;
        double r241532 = U;
        double r241533 = r241527 * r241524;
        double r241534 = r241533 * r241529;
        double r241535 = r241532 / r241534;
        double r241536 = pow(r241535, r241527);
        double r241537 = r241531 + r241536;
        double r241538 = sqrt(r241537);
        double r241539 = r241530 * r241538;
        double r241540 = -inf.0;
        bool r241541 = r241539 <= r241540;
        double r241542 = 6.212217001297238e+307;
        bool r241543 = r241539 <= r241542;
        double r241544 = !r241543;
        bool r241545 = r241541 || r241544;
        double r241546 = 0.25;
        double r241547 = sqrt(r241546);
        double r241548 = r241547 * r241532;
        double r241549 = 0.5;
        double r241550 = r241549 * r241526;
        double r241551 = cos(r241550);
        double r241552 = r241524 * r241551;
        double r241553 = r241548 / r241552;
        double r241554 = r241530 * r241553;
        double r241555 = 1.0;
        double r241556 = r241555 / r241534;
        double r241557 = r241532 * r241556;
        double r241558 = pow(r241557, r241527);
        double r241559 = r241531 + r241558;
        double r241560 = sqrt(r241559);
        double r241561 = r241530 * r241560;
        double r241562 = r241545 ? r241554 : r241561;
        return r241562;
}

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 6.212217001297238e+307 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0))))

    1. Initial program 63.9

      \[\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 45.8

      \[\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)))) < 6.212217001297238e+307

    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 div-inv0.2

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

    \[\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 6.2122170012972379 \cdot 10^{307}\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(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(U \cdot \frac{1}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\\ \end{array}\]

Reproduce

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