Average Error: 13.7 → 0.3
Time: 34.4s
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 -5.832220880681004 \cdot 10^{+46}:\\ \;\;\;\;\left(\frac{\frac{1}{F}}{F \cdot \sin B} - \frac{1}{\sin B}\right) - \frac{x}{\tan B}\\ \mathbf{elif}\;F \le 219633.3474896462:\\ \;\;\;\;\frac{F}{\sin B} \cdot {\left(x \cdot 2 + \left(2 + F \cdot F\right)\right)}^{\frac{-1}{2}} - \frac{\cos B \cdot x}{\sin B}\\ \mathbf{else}:\\ \;\;\;\;\left(1 - \frac{\frac{1}{F}}{F}\right) \cdot \frac{1}{\sin B} - \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 -5.832220880681004 \cdot 10^{+46}:\\
\;\;\;\;\left(\frac{\frac{1}{F}}{F \cdot \sin B} - \frac{1}{\sin B}\right) - \frac{x}{\tan B}\\

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

\mathbf{else}:\\
\;\;\;\;\left(1 - \frac{\frac{1}{F}}{F}\right) \cdot \frac{1}{\sin B} - \frac{x}{\tan B}\\

\end{array}
double f(double F, double B, double x) {
        double r773469 = x;
        double r773470 = 1.0;
        double r773471 = B;
        double r773472 = tan(r773471);
        double r773473 = r773470 / r773472;
        double r773474 = r773469 * r773473;
        double r773475 = -r773474;
        double r773476 = F;
        double r773477 = sin(r773471);
        double r773478 = r773476 / r773477;
        double r773479 = r773476 * r773476;
        double r773480 = 2.0;
        double r773481 = r773479 + r773480;
        double r773482 = r773480 * r773469;
        double r773483 = r773481 + r773482;
        double r773484 = r773470 / r773480;
        double r773485 = -r773484;
        double r773486 = pow(r773483, r773485);
        double r773487 = r773478 * r773486;
        double r773488 = r773475 + r773487;
        return r773488;
}

double f(double F, double B, double x) {
        double r773489 = F;
        double r773490 = -5.832220880681004e+46;
        bool r773491 = r773489 <= r773490;
        double r773492 = 1.0;
        double r773493 = r773492 / r773489;
        double r773494 = B;
        double r773495 = sin(r773494);
        double r773496 = r773489 * r773495;
        double r773497 = r773493 / r773496;
        double r773498 = r773492 / r773495;
        double r773499 = r773497 - r773498;
        double r773500 = x;
        double r773501 = tan(r773494);
        double r773502 = r773500 / r773501;
        double r773503 = r773499 - r773502;
        double r773504 = 219633.3474896462;
        bool r773505 = r773489 <= r773504;
        double r773506 = r773489 / r773495;
        double r773507 = 2.0;
        double r773508 = r773500 * r773507;
        double r773509 = r773489 * r773489;
        double r773510 = r773507 + r773509;
        double r773511 = r773508 + r773510;
        double r773512 = -0.5;
        double r773513 = pow(r773511, r773512);
        double r773514 = r773506 * r773513;
        double r773515 = cos(r773494);
        double r773516 = r773515 * r773500;
        double r773517 = r773516 / r773495;
        double r773518 = r773514 - r773517;
        double r773519 = r773493 / r773489;
        double r773520 = r773492 - r773519;
        double r773521 = r773520 * r773498;
        double r773522 = r773521 - r773502;
        double r773523 = r773505 ? r773518 : r773522;
        double r773524 = r773491 ? r773503 : r773523;
        return r773524;
}

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 < -5.832220880681004e+46

    1. Initial program 27.3

      \[\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. Simplified27.3

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

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

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

    if -5.832220880681004e+46 < F < 219633.3474896462

    1. Initial program 0.5

      \[\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.4

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

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

    if 219633.3474896462 < F

    1. Initial program 25.5

      \[\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. Simplified25.4

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

      \[\leadsto {\left(\left(2 + F \cdot F\right) + 2 \cdot x\right)}^{\frac{-1}{2}} \cdot \color{blue}{\left(F \cdot \frac{1}{\sin B}\right)} - \frac{x}{\tan B}\]
    5. Applied associate-*r*20.1

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

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

      \[\leadsto \color{blue}{\left(1 - \frac{\frac{1}{F}}{F}\right)} \cdot \frac{1}{\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 -5.832220880681004 \cdot 10^{+46}:\\ \;\;\;\;\left(\frac{\frac{1}{F}}{F \cdot \sin B} - \frac{1}{\sin B}\right) - \frac{x}{\tan B}\\ \mathbf{elif}\;F \le 219633.3474896462:\\ \;\;\;\;\frac{F}{\sin B} \cdot {\left(x \cdot 2 + \left(2 + F \cdot F\right)\right)}^{\frac{-1}{2}} - \frac{\cos B \cdot x}{\sin B}\\ \mathbf{else}:\\ \;\;\;\;\left(1 - \frac{\frac{1}{F}}{F}\right) \cdot \frac{1}{\sin B} - \frac{x}{\tan B}\\ \end{array}\]

Reproduce

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