Average Error: 13.6 → 0.2
Time: 35.2s
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 -13373.23580706387:\\ \;\;\;\;\frac{\frac{1}{F \cdot F} - 1}{\sin B} - \frac{x}{\tan B}\\ \mathbf{elif}\;F \le 13.525519432605135:\\ \;\;\;\;\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}:\\ \;\;\;\;\frac{1 - \frac{1}{F \cdot F}}{\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 -13373.23580706387:\\
\;\;\;\;\frac{\frac{1}{F \cdot F} - 1}{\sin B} - \frac{x}{\tan B}\\

\mathbf{elif}\;F \le 13.525519432605135:\\
\;\;\;\;\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}:\\
\;\;\;\;\frac{1 - \frac{1}{F \cdot F}}{\sin B} - \frac{x}{\tan B}\\

\end{array}
double f(double F, double B, double x) {
        double r1487841 = x;
        double r1487842 = 1.0;
        double r1487843 = B;
        double r1487844 = tan(r1487843);
        double r1487845 = r1487842 / r1487844;
        double r1487846 = r1487841 * r1487845;
        double r1487847 = -r1487846;
        double r1487848 = F;
        double r1487849 = sin(r1487843);
        double r1487850 = r1487848 / r1487849;
        double r1487851 = r1487848 * r1487848;
        double r1487852 = 2.0;
        double r1487853 = r1487851 + r1487852;
        double r1487854 = r1487852 * r1487841;
        double r1487855 = r1487853 + r1487854;
        double r1487856 = r1487842 / r1487852;
        double r1487857 = -r1487856;
        double r1487858 = pow(r1487855, r1487857);
        double r1487859 = r1487850 * r1487858;
        double r1487860 = r1487847 + r1487859;
        return r1487860;
}

double f(double F, double B, double x) {
        double r1487861 = F;
        double r1487862 = -13373.23580706387;
        bool r1487863 = r1487861 <= r1487862;
        double r1487864 = 1.0;
        double r1487865 = r1487861 * r1487861;
        double r1487866 = r1487864 / r1487865;
        double r1487867 = r1487866 - r1487864;
        double r1487868 = B;
        double r1487869 = sin(r1487868);
        double r1487870 = r1487867 / r1487869;
        double r1487871 = x;
        double r1487872 = tan(r1487868);
        double r1487873 = r1487871 / r1487872;
        double r1487874 = r1487870 - r1487873;
        double r1487875 = 13.525519432605135;
        bool r1487876 = r1487861 <= r1487875;
        double r1487877 = 2.0;
        double r1487878 = r1487865 + r1487877;
        double r1487879 = r1487877 * r1487871;
        double r1487880 = r1487878 + r1487879;
        double r1487881 = -0.5;
        double r1487882 = pow(r1487880, r1487881);
        double r1487883 = r1487869 / r1487861;
        double r1487884 = r1487882 / r1487883;
        double r1487885 = r1487884 - r1487873;
        double r1487886 = r1487864 - r1487866;
        double r1487887 = r1487886 / r1487869;
        double r1487888 = r1487887 - r1487873;
        double r1487889 = r1487876 ? r1487885 : r1487888;
        double r1487890 = r1487863 ? r1487874 : r1487889;
        return r1487890;
}

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

    1. Initial program 24.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. Simplified19.3

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

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

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

    if -13373.23580706387 < F < 13.525519432605135

    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) + x \cdot 2\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) + x \cdot 2\right)}^{\frac{-1}{2}}}{\frac{\sin B}{F}}} - \frac{x}{\tan B}\]

    if 13.525519432605135 < 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. Simplified19.3

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;F \le -13373.23580706387:\\ \;\;\;\;\frac{\frac{1}{F \cdot F} - 1}{\sin B} - \frac{x}{\tan B}\\ \mathbf{elif}\;F \le 13.525519432605135:\\ \;\;\;\;\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}:\\ \;\;\;\;\frac{1 - \frac{1}{F \cdot F}}{\sin B} - \frac{x}{\tan B}\\ \end{array}\]

Reproduce

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