Average Error: 13.8 → 0.2
Time: 14.1s
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 -752955800017062.75:\\ \;\;\;\;\frac{\frac{\frac{1}{F}}{F} - 1}{\sin B} - \frac{x \cdot 1}{\tan B}\\ \mathbf{elif}\;F \le 7212012.3360460978:\\ \;\;\;\;\frac{F}{\frac{\sin B}{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)}}} - \frac{x \cdot 1}{\tan B}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{\sin B} - 1 \cdot \frac{1}{\sin B \cdot {F}^{2}}\right) - \frac{x \cdot 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 -752955800017062.75:\\
\;\;\;\;\frac{\frac{\frac{1}{F}}{F} - 1}{\sin B} - \frac{x \cdot 1}{\tan B}\\

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

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

\end{array}
double f(double F, double B, double x) {
        double r44554 = x;
        double r44555 = 1.0;
        double r44556 = B;
        double r44557 = tan(r44556);
        double r44558 = r44555 / r44557;
        double r44559 = r44554 * r44558;
        double r44560 = -r44559;
        double r44561 = F;
        double r44562 = sin(r44556);
        double r44563 = r44561 / r44562;
        double r44564 = r44561 * r44561;
        double r44565 = 2.0;
        double r44566 = r44564 + r44565;
        double r44567 = r44565 * r44554;
        double r44568 = r44566 + r44567;
        double r44569 = r44555 / r44565;
        double r44570 = -r44569;
        double r44571 = pow(r44568, r44570);
        double r44572 = r44563 * r44571;
        double r44573 = r44560 + r44572;
        return r44573;
}

double f(double F, double B, double x) {
        double r44574 = F;
        double r44575 = -752955800017062.8;
        bool r44576 = r44574 <= r44575;
        double r44577 = 1.0;
        double r44578 = r44577 / r44574;
        double r44579 = r44578 / r44574;
        double r44580 = 1.0;
        double r44581 = r44579 - r44580;
        double r44582 = B;
        double r44583 = sin(r44582);
        double r44584 = r44581 / r44583;
        double r44585 = x;
        double r44586 = r44585 * r44577;
        double r44587 = tan(r44582);
        double r44588 = r44586 / r44587;
        double r44589 = r44584 - r44588;
        double r44590 = 7212012.336046098;
        bool r44591 = r44574 <= r44590;
        double r44592 = r44574 * r44574;
        double r44593 = 2.0;
        double r44594 = r44592 + r44593;
        double r44595 = r44593 * r44585;
        double r44596 = r44594 + r44595;
        double r44597 = r44577 / r44593;
        double r44598 = -r44597;
        double r44599 = pow(r44596, r44598);
        double r44600 = r44583 / r44599;
        double r44601 = r44574 / r44600;
        double r44602 = r44601 - r44588;
        double r44603 = r44580 / r44583;
        double r44604 = 2.0;
        double r44605 = pow(r44574, r44604);
        double r44606 = r44583 * r44605;
        double r44607 = r44580 / r44606;
        double r44608 = r44577 * r44607;
        double r44609 = r44603 - r44608;
        double r44610 = r44609 - r44588;
        double r44611 = r44591 ? r44602 : r44610;
        double r44612 = r44576 ? r44589 : r44611;
        return r44612;
}

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

    1. Initial program 25.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. Simplified25.8

      \[\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 associate-*l/19.8

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

      \[\leadsto \frac{F \cdot {\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}}\]
    7. Taylor expanded around -inf 0.1

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

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

    if -752955800017062.8 < F < 7212012.336046098

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

      \[\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 associate-*l/0.4

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

      \[\leadsto \frac{F \cdot {\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}}\]
    7. Using strategy rm
    8. Applied associate-/l*0.3

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

    if 7212012.336046098 < 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.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 associate-*l/20.0

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

      \[\leadsto \frac{F \cdot {\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}}\]
    7. Taylor expanded around inf 0.2

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

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

Reproduce

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