Average Error: 13.7 → 0.2
Time: 1.4m
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 -314626798588556.4:\\ \;\;\;\;\frac{\frac{1}{F \cdot F} - 1}{\sin B} - \frac{x}{\tan B}\\ \mathbf{elif}\;F \le 3.537800433451938 \cdot 10^{+16}:\\ \;\;\;\;\frac{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \frac{x}{\tan B}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{\sin B} - \frac{\frac{1}{\sin B}}{F \cdot F}\right) - \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 -314626798588556.4:\\
\;\;\;\;\frac{\frac{1}{F \cdot F} - 1}{\sin B} - \frac{x}{\tan B}\\

\mathbf{elif}\;F \le 3.537800433451938 \cdot 10^{+16}:\\
\;\;\;\;\frac{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}} - \frac{x}{\tan B}\\

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

\end{array}
double f(double F, double B, double x) {
        double r4902715 = x;
        double r4902716 = 1.0;
        double r4902717 = B;
        double r4902718 = tan(r4902717);
        double r4902719 = r4902716 / r4902718;
        double r4902720 = r4902715 * r4902719;
        double r4902721 = -r4902720;
        double r4902722 = F;
        double r4902723 = sin(r4902717);
        double r4902724 = r4902722 / r4902723;
        double r4902725 = r4902722 * r4902722;
        double r4902726 = 2.0;
        double r4902727 = r4902725 + r4902726;
        double r4902728 = r4902726 * r4902715;
        double r4902729 = r4902727 + r4902728;
        double r4902730 = r4902716 / r4902726;
        double r4902731 = -r4902730;
        double r4902732 = pow(r4902729, r4902731);
        double r4902733 = r4902724 * r4902732;
        double r4902734 = r4902721 + r4902733;
        return r4902734;
}

double f(double F, double B, double x) {
        double r4902735 = F;
        double r4902736 = -314626798588556.4;
        bool r4902737 = r4902735 <= r4902736;
        double r4902738 = 1.0;
        double r4902739 = r4902735 * r4902735;
        double r4902740 = r4902738 / r4902739;
        double r4902741 = r4902740 - r4902738;
        double r4902742 = B;
        double r4902743 = sin(r4902742);
        double r4902744 = r4902741 / r4902743;
        double r4902745 = x;
        double r4902746 = tan(r4902742);
        double r4902747 = r4902745 / r4902746;
        double r4902748 = r4902744 - r4902747;
        double r4902749 = 3.537800433451938e+16;
        bool r4902750 = r4902735 <= r4902749;
        double r4902751 = 2.0;
        double r4902752 = r4902739 + r4902751;
        double r4902753 = r4902751 * r4902745;
        double r4902754 = r4902752 + r4902753;
        double r4902755 = -0.5;
        double r4902756 = pow(r4902754, r4902755);
        double r4902757 = r4902743 / r4902735;
        double r4902758 = r4902756 / r4902757;
        double r4902759 = r4902758 - r4902747;
        double r4902760 = r4902738 / r4902743;
        double r4902761 = r4902760 / r4902739;
        double r4902762 = r4902760 - r4902761;
        double r4902763 = r4902762 - r4902747;
        double r4902764 = r4902750 ? r4902759 : r4902763;
        double r4902765 = r4902737 ? r4902748 : r4902764;
        return r4902765;
}

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 < -314626798588556.4

    1. Initial program 25.1

      \[\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. Simplified19.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.2

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

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

    if -314626798588556.4 < F < 3.537800433451938e+16

    1. Initial program 0.4

      \[\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. Using strategy rm
    4. Applied associate-/l*0.3

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

    if 3.537800433451938e+16 < F

    1. Initial program 26.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. Simplified20.5

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

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

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

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

Reproduce

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