Average Error: 18.1 → 17.9
Time: 14.5s
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}\;J \le -1.838279836993495 \cdot 10^{-208} \lor \neg \left(J \le 9.3045553760884336 \cdot 10^{-275} \lor \neg \left(J \le 1.726751503988064 \cdot 10^{-196}\right) \land J \le 2.17348634570913259 \cdot 10^{-87}\right):\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}} \cdot \cos \left(\frac{K}{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;-2 \cdot \left(\sqrt{0.25} \cdot U\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}\;J \le -1.838279836993495 \cdot 10^{-208} \lor \neg \left(J \le 9.3045553760884336 \cdot 10^{-275} \lor \neg \left(J \le 1.726751503988064 \cdot 10^{-196}\right) \land J \le 2.17348634570913259 \cdot 10^{-87}\right):\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}} \cdot \cos \left(\frac{K}{2}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;-2 \cdot \left(\sqrt{0.25} \cdot U\right)\\

\end{array}
double f(double J, double K, double U) {
        double r132322 = -2.0;
        double r132323 = J;
        double r132324 = r132322 * r132323;
        double r132325 = K;
        double r132326 = 2.0;
        double r132327 = r132325 / r132326;
        double r132328 = cos(r132327);
        double r132329 = r132324 * r132328;
        double r132330 = 1.0;
        double r132331 = U;
        double r132332 = r132326 * r132323;
        double r132333 = r132332 * r132328;
        double r132334 = r132331 / r132333;
        double r132335 = pow(r132334, r132326);
        double r132336 = r132330 + r132335;
        double r132337 = sqrt(r132336);
        double r132338 = r132329 * r132337;
        return r132338;
}

double f(double J, double K, double U) {
        double r132339 = J;
        double r132340 = -1.838279836993495e-208;
        bool r132341 = r132339 <= r132340;
        double r132342 = 9.304555376088434e-275;
        bool r132343 = r132339 <= r132342;
        double r132344 = 1.726751503988064e-196;
        bool r132345 = r132339 <= r132344;
        double r132346 = !r132345;
        double r132347 = 2.1734863457091326e-87;
        bool r132348 = r132339 <= r132347;
        bool r132349 = r132346 && r132348;
        bool r132350 = r132343 || r132349;
        double r132351 = !r132350;
        bool r132352 = r132341 || r132351;
        double r132353 = -2.0;
        double r132354 = r132353 * r132339;
        double r132355 = 1.0;
        double r132356 = U;
        double r132357 = 2.0;
        double r132358 = r132357 * r132339;
        double r132359 = K;
        double r132360 = r132359 / r132357;
        double r132361 = cos(r132360);
        double r132362 = r132358 * r132361;
        double r132363 = r132356 / r132362;
        double r132364 = pow(r132363, r132357);
        double r132365 = r132355 + r132364;
        double r132366 = sqrt(r132365);
        double r132367 = r132366 * r132361;
        double r132368 = r132354 * r132367;
        double r132369 = 0.25;
        double r132370 = sqrt(r132369);
        double r132371 = r132370 * r132356;
        double r132372 = r132353 * r132371;
        double r132373 = r132352 ? r132368 : r132372;
        return r132373;
}

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 J < -1.838279836993495e-208 or 9.304555376088434e-275 < J < 1.726751503988064e-196 or 2.1734863457091326e-87 < J

    1. Initial program 13.5

      \[\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*13.5

      \[\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)}\]
    4. Simplified13.5

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

    if -1.838279836993495e-208 < J < 9.304555376088434e-275 or 1.726751503988064e-196 < J < 2.1734863457091326e-87

    1. Initial program 38.4

      \[\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*38.5

      \[\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)}\]
    4. Simplified38.5

      \[\leadsto \left(-2 \cdot J\right) \cdot \color{blue}{\left(\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}} \cdot \cos \left(\frac{K}{2}\right)\right)}\]
    5. Taylor expanded around 0 37.1

      \[\leadsto \color{blue}{-2 \cdot \left(\sqrt{0.25} \cdot U\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification17.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;J \le -1.838279836993495 \cdot 10^{-208} \lor \neg \left(J \le 9.3045553760884336 \cdot 10^{-275} \lor \neg \left(J \le 1.726751503988064 \cdot 10^{-196}\right) \land J \le 2.17348634570913259 \cdot 10^{-87}\right):\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}} \cdot \cos \left(\frac{K}{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;-2 \cdot \left(\sqrt{0.25} \cdot U\right)\\ \end{array}\]

Reproduce

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