Average Error: 13.3 → 0.3
Time: 21.9s
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 -4.060657734187693706877879794747009471683 \cdot 10^{158}:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{1}{F \cdot F} + -1}{\sin B}\\ \mathbf{elif}\;F \le 1344.095327323162791799404658377170562744:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{F}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}}}{\sin B}\\ \mathbf{else}:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{1 - \frac{1}{F \cdot F}}{\sin 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 -4.060657734187693706877879794747009471683 \cdot 10^{158}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{1}{F \cdot F} + -1}{\sin B}\\

\mathbf{elif}\;F \le 1344.095327323162791799404658377170562744:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{F}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}}}{\sin B}\\

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

\end{array}
double f(double F, double B, double x) {
        double r68071 = x;
        double r68072 = 1.0;
        double r68073 = B;
        double r68074 = tan(r68073);
        double r68075 = r68072 / r68074;
        double r68076 = r68071 * r68075;
        double r68077 = -r68076;
        double r68078 = F;
        double r68079 = sin(r68073);
        double r68080 = r68078 / r68079;
        double r68081 = r68078 * r68078;
        double r68082 = 2.0;
        double r68083 = r68081 + r68082;
        double r68084 = r68082 * r68071;
        double r68085 = r68083 + r68084;
        double r68086 = r68072 / r68082;
        double r68087 = -r68086;
        double r68088 = pow(r68085, r68087);
        double r68089 = r68080 * r68088;
        double r68090 = r68077 + r68089;
        return r68090;
}

double f(double F, double B, double x) {
        double r68091 = F;
        double r68092 = -4.0606577341876937e+158;
        bool r68093 = r68091 <= r68092;
        double r68094 = x;
        double r68095 = 1.0;
        double r68096 = r68094 * r68095;
        double r68097 = B;
        double r68098 = tan(r68097);
        double r68099 = r68096 / r68098;
        double r68100 = -r68099;
        double r68101 = r68091 * r68091;
        double r68102 = r68095 / r68101;
        double r68103 = -1.0;
        double r68104 = r68102 + r68103;
        double r68105 = sin(r68097);
        double r68106 = r68104 / r68105;
        double r68107 = r68100 + r68106;
        double r68108 = 1344.0953273231628;
        bool r68109 = r68091 <= r68108;
        double r68110 = 2.0;
        double r68111 = fma(r68091, r68091, r68110);
        double r68112 = fma(r68110, r68094, r68111);
        double r68113 = r68095 / r68110;
        double r68114 = pow(r68112, r68113);
        double r68115 = r68091 / r68114;
        double r68116 = r68115 / r68105;
        double r68117 = r68100 + r68116;
        double r68118 = 1.0;
        double r68119 = r68118 - r68102;
        double r68120 = r68119 / r68105;
        double r68121 = r68100 + r68120;
        double r68122 = r68109 ? r68117 : r68121;
        double r68123 = r68093 ? r68107 : r68122;
        return r68123;
}

Error

Bits error versus F

Bits error versus B

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if F < -4.0606577341876937e+158

    1. Initial program 41.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. Using strategy rm
    3. Applied associate-*l/36.0

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

      \[\leadsto \left(-x \cdot \frac{1}{\tan B}\right) + \frac{\color{blue}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot F}}{\sin B}\]
    5. Using strategy rm
    6. Applied associate-*r/35.9

      \[\leadsto \left(-\color{blue}{\frac{x \cdot 1}{\tan B}}\right) + \frac{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot F}{\sin B}\]
    7. Using strategy rm
    8. Applied pow-neg35.9

      \[\leadsto \left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\color{blue}{\frac{1}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}}} \cdot F}{\sin B}\]
    9. Applied associate-*l/35.9

      \[\leadsto \left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\color{blue}{\frac{1 \cdot F}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}}}}{\sin B}\]
    10. Simplified35.9

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

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

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

    if -4.0606577341876937e+158 < F < 1344.0953273231628

    1. Initial program 1.8

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

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

      \[\leadsto \left(-x \cdot \frac{1}{\tan B}\right) + \frac{\color{blue}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot F}}{\sin B}\]
    5. Using strategy rm
    6. Applied associate-*r/0.5

      \[\leadsto \left(-\color{blue}{\frac{x \cdot 1}{\tan B}}\right) + \frac{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot F}{\sin B}\]
    7. Using strategy rm
    8. Applied pow-neg0.5

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

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

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

    if 1344.0953273231628 < F

    1. Initial program 24.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. Using strategy rm
    3. Applied associate-*l/18.9

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

      \[\leadsto \left(-x \cdot \frac{1}{\tan B}\right) + \frac{\color{blue}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot F}}{\sin B}\]
    5. Using strategy rm
    6. Applied associate-*r/18.9

      \[\leadsto \left(-\color{blue}{\frac{x \cdot 1}{\tan B}}\right) + \frac{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot F}{\sin B}\]
    7. Using strategy rm
    8. Applied pow-neg18.8

      \[\leadsto \left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\color{blue}{\frac{1}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}}} \cdot F}{\sin B}\]
    9. Applied associate-*l/18.8

      \[\leadsto \left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\color{blue}{\frac{1 \cdot F}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}}}}{\sin B}\]
    10. Simplified18.8

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;F \le -4.060657734187693706877879794747009471683 \cdot 10^{158}:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{1}{F \cdot F} + -1}{\sin B}\\ \mathbf{elif}\;F \le 1344.095327323162791799404658377170562744:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{\frac{F}{{\left(\mathsf{fma}\left(2, x, \mathsf{fma}\left(F, F, 2\right)\right)\right)}^{\left(\frac{1}{2}\right)}}}{\sin B}\\ \mathbf{else}:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{1 - \frac{1}{F \cdot F}}{\sin B}\\ \end{array}\]

Reproduce

herbie shell --seed 2019351 +o rules:numerics
(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))))))