Average Error: 13.3 → 0.3
Time: 1.6m
Precision: 64
\[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}\]
\[\begin{array}{l} \mathbf{if}\;F \le -2.1630404384861445 \cdot 10^{+73}:\\ \;\;\;\;\frac{1}{-\left(\sin B + \frac{\sin B}{F \cdot F} \cdot x\right)} - \frac{x}{\tan B}\\ \mathbf{elif}\;F \le 106668299.39412066:\\ \;\;\;\;\frac{{\left(2 \cdot x + \left(F \cdot F + 2\right)\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \frac{\cos B \cdot x}{\sin B}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sin B + \frac{\sin B}{F \cdot F} \cdot x} - \frac{x}{\tan B}\\ \end{array}\]
\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}
\begin{array}{l}
\mathbf{if}\;F \le -2.1630404384861445 \cdot 10^{+73}:\\
\;\;\;\;\frac{1}{-\left(\sin B + \frac{\sin B}{F \cdot F} \cdot x\right)} - \frac{x}{\tan B}\\

\mathbf{elif}\;F \le 106668299.39412066:\\
\;\;\;\;\frac{{\left(2 \cdot x + \left(F \cdot F + 2\right)\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \frac{\cos B \cdot x}{\sin B}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\sin B + \frac{\sin B}{F \cdot F} \cdot x} - \frac{x}{\tan B}\\

\end{array}
double f(double F, double B, double x) {
        double r5581366 = x;
        double r5581367 = 1.0;
        double r5581368 = B;
        double r5581369 = tan(r5581368);
        double r5581370 = r5581367 / r5581369;
        double r5581371 = r5581366 * r5581370;
        double r5581372 = -r5581371;
        double r5581373 = F;
        double r5581374 = sin(r5581368);
        double r5581375 = r5581373 / r5581374;
        double r5581376 = r5581373 * r5581373;
        double r5581377 = 2.0;
        double r5581378 = r5581376 + r5581377;
        double r5581379 = r5581377 * r5581366;
        double r5581380 = r5581378 + r5581379;
        double r5581381 = r5581367 / r5581377;
        double r5581382 = -r5581381;
        double r5581383 = pow(r5581380, r5581382);
        double r5581384 = r5581375 * r5581383;
        double r5581385 = r5581372 + r5581384;
        return r5581385;
}

double f(double F, double B, double x) {
        double r5581386 = F;
        double r5581387 = -2.1630404384861445e+73;
        bool r5581388 = r5581386 <= r5581387;
        double r5581389 = 1.0;
        double r5581390 = B;
        double r5581391 = sin(r5581390);
        double r5581392 = r5581386 * r5581386;
        double r5581393 = r5581391 / r5581392;
        double r5581394 = x;
        double r5581395 = r5581393 * r5581394;
        double r5581396 = r5581391 + r5581395;
        double r5581397 = -r5581396;
        double r5581398 = r5581389 / r5581397;
        double r5581399 = tan(r5581390);
        double r5581400 = r5581394 / r5581399;
        double r5581401 = r5581398 - r5581400;
        double r5581402 = 106668299.39412066;
        bool r5581403 = r5581386 <= r5581402;
        double r5581404 = 2.0;
        double r5581405 = r5581404 * r5581394;
        double r5581406 = r5581392 + r5581404;
        double r5581407 = r5581405 + r5581406;
        double r5581408 = -0.5;
        double r5581409 = pow(r5581407, r5581408);
        double r5581410 = r5581391 / r5581386;
        double r5581411 = r5581409 / r5581410;
        double r5581412 = cos(r5581390);
        double r5581413 = r5581412 * r5581394;
        double r5581414 = r5581413 / r5581391;
        double r5581415 = r5581411 - r5581414;
        double r5581416 = r5581389 / r5581396;
        double r5581417 = r5581416 - r5581400;
        double r5581418 = r5581403 ? r5581415 : r5581417;
        double r5581419 = r5581388 ? r5581401 : r5581418;
        return r5581419;
}

Error

Bits error versus F

Bits error versus B

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if F < -2.1630404384861445e+73

    1. Initial program 29.6

      \[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}\]
    2. Simplified23.8

      \[\leadsto \color{blue}{\frac{{\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}} \cdot F}{\sin B} - \frac{x}{\tan B}}\]
    3. Using strategy rm
    4. Applied clear-num23.8

      \[\leadsto \color{blue}{\frac{1}{\frac{\sin B}{{\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}} \cdot F}}} - \frac{x}{\tan B}\]
    5. Taylor expanded around -inf 0.2

      \[\leadsto \frac{1}{\color{blue}{-\left(\frac{x \cdot \sin B}{{F}^{2}} + \sin B\right)}} - \frac{x}{\tan B}\]
    6. Simplified0.2

      \[\leadsto \frac{1}{\color{blue}{-\left(\frac{\sin B}{F \cdot F} \cdot x + \sin B\right)}} - \frac{x}{\tan B}\]

    if -2.1630404384861445e+73 < F < 106668299.39412066

    1. Initial program 0.7

      \[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}\]
    2. Simplified0.3

      \[\leadsto \color{blue}{\frac{{\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}} \cdot F}{\sin B} - \frac{x}{\tan B}}\]
    3. Taylor expanded around inf 0.3

      \[\leadsto \frac{{\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}} \cdot F}{\sin B} - \color{blue}{\frac{x \cdot \cos B}{\sin B}}\]
    4. Using strategy rm
    5. Applied associate-/l*0.5

      \[\leadsto \color{blue}{\frac{{\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}}} - \frac{x \cdot \cos B}{\sin B}\]

    if 106668299.39412066 < F

    1. Initial program 24.6

      \[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}\]
    2. Simplified18.6

      \[\leadsto \color{blue}{\frac{{\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}} \cdot F}{\sin B} - \frac{x}{\tan B}}\]
    3. Using strategy rm
    4. Applied clear-num18.6

      \[\leadsto \color{blue}{\frac{1}{\frac{\sin B}{{\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}} \cdot F}}} - \frac{x}{\tan B}\]
    5. Taylor expanded around inf 0.1

      \[\leadsto \frac{1}{\color{blue}{\frac{x \cdot \sin B}{{F}^{2}} + \sin B}} - \frac{x}{\tan B}\]
    6. Simplified0.1

      \[\leadsto \frac{1}{\color{blue}{x \cdot \frac{\sin B}{F \cdot F} + \sin B}} - \frac{x}{\tan B}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;F \le -2.1630404384861445 \cdot 10^{+73}:\\ \;\;\;\;\frac{1}{-\left(\sin B + \frac{\sin B}{F \cdot F} \cdot x\right)} - \frac{x}{\tan B}\\ \mathbf{elif}\;F \le 106668299.39412066:\\ \;\;\;\;\frac{{\left(2 \cdot x + \left(F \cdot F + 2\right)\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \frac{\cos B \cdot x}{\sin B}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sin B + \frac{\sin B}{F \cdot F} \cdot x} - \frac{x}{\tan B}\\ \end{array}\]

Reproduce

herbie shell --seed 2019121 
(FPCore (F B x)
  :name "VandenBroeck and Keller, Equation (23)"
  (+ (- (* x (/ 1 (tan B)))) (* (/ F (sin B)) (pow (+ (+ (* F F) 2) (* 2 x)) (- (/ 1 2))))))