Average Error: 14.2 → 0.3
Time: 18.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 -1.91574468424460201 \cdot 10^{23}:\\ \;\;\;\;\left(\frac{1}{\sin B \cdot {F}^{2}} + \frac{-1}{\sin B}\right) - 1 \cdot \frac{x \cdot \cos B}{\sin B}\\ \mathbf{elif}\;F \le 1.2208528278557798 \cdot 10^{27}:\\ \;\;\;\;F \cdot \frac{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}}{\sin B} - \frac{1}{\frac{\tan B}{x \cdot 1}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{\sin B} - \frac{\frac{1}{\sin B}}{F \cdot F}\right) - x \cdot \frac{1}{\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 -1.91574468424460201 \cdot 10^{23}:\\
\;\;\;\;\left(\frac{1}{\sin B \cdot {F}^{2}} + \frac{-1}{\sin B}\right) - 1 \cdot \frac{x \cdot \cos B}{\sin B}\\

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

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

\end{array}
double f(double F, double B, double x) {
        double r48933 = x;
        double r48934 = 1.0;
        double r48935 = B;
        double r48936 = tan(r48935);
        double r48937 = r48934 / r48936;
        double r48938 = r48933 * r48937;
        double r48939 = -r48938;
        double r48940 = F;
        double r48941 = sin(r48935);
        double r48942 = r48940 / r48941;
        double r48943 = r48940 * r48940;
        double r48944 = 2.0;
        double r48945 = r48943 + r48944;
        double r48946 = r48944 * r48933;
        double r48947 = r48945 + r48946;
        double r48948 = r48934 / r48944;
        double r48949 = -r48948;
        double r48950 = pow(r48947, r48949);
        double r48951 = r48942 * r48950;
        double r48952 = r48939 + r48951;
        return r48952;
}

double f(double F, double B, double x) {
        double r48953 = F;
        double r48954 = -1.915744684244602e+23;
        bool r48955 = r48953 <= r48954;
        double r48956 = 1.0;
        double r48957 = B;
        double r48958 = sin(r48957);
        double r48959 = 2.0;
        double r48960 = pow(r48953, r48959);
        double r48961 = r48958 * r48960;
        double r48962 = r48956 / r48961;
        double r48963 = -1.0;
        double r48964 = r48963 / r48958;
        double r48965 = r48962 + r48964;
        double r48966 = x;
        double r48967 = cos(r48957);
        double r48968 = r48966 * r48967;
        double r48969 = r48968 / r48958;
        double r48970 = r48956 * r48969;
        double r48971 = r48965 - r48970;
        double r48972 = 1.2208528278557798e+27;
        bool r48973 = r48953 <= r48972;
        double r48974 = r48953 * r48953;
        double r48975 = 2.0;
        double r48976 = r48974 + r48975;
        double r48977 = r48975 * r48966;
        double r48978 = r48976 + r48977;
        double r48979 = r48956 / r48975;
        double r48980 = -r48979;
        double r48981 = pow(r48978, r48980);
        double r48982 = r48981 / r48958;
        double r48983 = r48953 * r48982;
        double r48984 = 1.0;
        double r48985 = tan(r48957);
        double r48986 = r48966 * r48956;
        double r48987 = r48985 / r48986;
        double r48988 = r48984 / r48987;
        double r48989 = r48983 - r48988;
        double r48990 = r48984 / r48958;
        double r48991 = r48956 / r48958;
        double r48992 = r48991 / r48974;
        double r48993 = r48990 - r48992;
        double r48994 = r48956 / r48985;
        double r48995 = r48966 * r48994;
        double r48996 = r48993 - r48995;
        double r48997 = r48973 ? r48989 : r48996;
        double r48998 = r48955 ? r48971 : r48997;
        return r48998;
}

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 < -1.915744684244602e+23

    1. Initial program 26.9

      \[\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. Simplified26.9

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

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

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

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

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

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

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

    if -1.915744684244602e+23 < F < 1.2208528278557798e+27

    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.5

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

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

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

      \[\leadsto F \cdot \color{blue}{\frac{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}}{\sin B}} - x \cdot \frac{1}{\tan B}\]
    7. Using strategy rm
    8. Applied associate-*r/0.3

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

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

    if 1.2208528278557798e+27 < F

    1. Initial program 27.2

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

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

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

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

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

Reproduce

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