Average Error: 13.4 → 0.4
Time: 11.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 -2.98626256981204303 \cdot 10^{56}:\\ \;\;\;\;\left(1 \cdot \frac{1}{\sin B \cdot {F}^{2}} - \frac{1}{\sin B}\right) - x \cdot \frac{1}{\tan B}\\ \mathbf{elif}\;F \le 348481.04716082942:\\ \;\;\;\;\frac{F}{\sin B} \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(-\frac{1}{2}\right)} - 1 \cdot \frac{x \cdot \cos B}{\sin B}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{\sin B} - 1 \cdot \frac{1}{\sin B \cdot {F}^{2}}\right) - \left(1 \cdot \left(1 \cdot \frac{x}{\sin B}\right)\right) \cdot \cos 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 -2.98626256981204303 \cdot 10^{56}:\\
\;\;\;\;\left(1 \cdot \frac{1}{\sin B \cdot {F}^{2}} - \frac{1}{\sin B}\right) - x \cdot \frac{1}{\tan B}\\

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

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

\end{array}
double f(double F, double B, double x) {
        double r37610 = x;
        double r37611 = 1.0;
        double r37612 = B;
        double r37613 = tan(r37612);
        double r37614 = r37611 / r37613;
        double r37615 = r37610 * r37614;
        double r37616 = -r37615;
        double r37617 = F;
        double r37618 = sin(r37612);
        double r37619 = r37617 / r37618;
        double r37620 = r37617 * r37617;
        double r37621 = 2.0;
        double r37622 = r37620 + r37621;
        double r37623 = r37621 * r37610;
        double r37624 = r37622 + r37623;
        double r37625 = r37611 / r37621;
        double r37626 = -r37625;
        double r37627 = pow(r37624, r37626);
        double r37628 = r37619 * r37627;
        double r37629 = r37616 + r37628;
        return r37629;
}

double f(double F, double B, double x) {
        double r37630 = F;
        double r37631 = -2.986262569812043e+56;
        bool r37632 = r37630 <= r37631;
        double r37633 = 1.0;
        double r37634 = 1.0;
        double r37635 = B;
        double r37636 = sin(r37635);
        double r37637 = 2.0;
        double r37638 = pow(r37630, r37637);
        double r37639 = r37636 * r37638;
        double r37640 = r37634 / r37639;
        double r37641 = r37633 * r37640;
        double r37642 = r37634 / r37636;
        double r37643 = r37641 - r37642;
        double r37644 = x;
        double r37645 = tan(r37635);
        double r37646 = r37633 / r37645;
        double r37647 = r37644 * r37646;
        double r37648 = r37643 - r37647;
        double r37649 = 348481.0471608294;
        bool r37650 = r37630 <= r37649;
        double r37651 = r37630 / r37636;
        double r37652 = r37630 * r37630;
        double r37653 = 2.0;
        double r37654 = r37652 + r37653;
        double r37655 = r37653 * r37644;
        double r37656 = r37654 + r37655;
        double r37657 = r37633 / r37653;
        double r37658 = -r37657;
        double r37659 = pow(r37656, r37658);
        double r37660 = r37651 * r37659;
        double r37661 = cos(r37635);
        double r37662 = r37644 * r37661;
        double r37663 = r37662 / r37636;
        double r37664 = r37633 * r37663;
        double r37665 = r37660 - r37664;
        double r37666 = r37642 - r37641;
        double r37667 = r37644 / r37636;
        double r37668 = r37633 * r37667;
        double r37669 = r37634 * r37668;
        double r37670 = r37669 * r37661;
        double r37671 = r37666 - r37670;
        double r37672 = r37650 ? r37665 : r37671;
        double r37673 = r37632 ? r37648 : r37672;
        return r37673;
}

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 < -2.986262569812043e+56

    1. Initial program 28.3

      \[\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. Simplified28.3

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

    if -2.986262569812043e+56 < F < 348481.0471608294

    1. Initial program 0.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. Simplified0.6

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

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

    if 348481.0471608294 < F

    1. Initial program 24.3

      \[\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. Simplified24.3

      \[\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 pow-neg24.3

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

      \[\leadsto \color{blue}{\frac{F \cdot 1}{\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}\]
    6. Simplified18.9

      \[\leadsto \frac{\color{blue}{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}\]
    7. Using strategy rm
    8. Applied tan-quot19.0

      \[\leadsto \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}{\color{blue}{\frac{\sin B}{\cos B}}}\]
    9. Applied associate-/r/19.0

      \[\leadsto \frac{F}{\sin B \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(\frac{1}{2}\right)}} - x \cdot \color{blue}{\left(\frac{1}{\sin B} \cdot \cos B\right)}\]
    10. Applied associate-*r*18.9

      \[\leadsto \frac{F}{\sin B \cdot {\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(\frac{1}{2}\right)}} - \color{blue}{\left(x \cdot \frac{1}{\sin B}\right) \cdot \cos B}\]
    11. Using strategy rm
    12. Applied *-un-lft-identity18.9

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

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

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

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

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

Reproduce

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