Average Error: 13.5 → 0.3
Time: 33.7s
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.333939750358132910414665699471913882429 \cdot 10^{154}:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{F}{\sin B \cdot \left({\left(\frac{1}{{-1}^{1} \cdot {F}^{1}}\right)}^{1} \cdot 1 + F \cdot {\left(\frac{1}{{-1}^{1}}\right)}^{1}\right)}\\ \mathbf{elif}\;F \le 21340.5240688307094387710094451904296875:\\ \;\;\;\;\left(-\frac{x \cdot 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)}}\\ \mathbf{else}:\\ \;\;\;\;\left(-x \cdot \frac{1}{\tan B}\right) + \left(\frac{1}{\sin B} - \frac{1}{\sin B \cdot {F}^{2}}\right)\\ \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.333939750358132910414665699471913882429 \cdot 10^{154}:\\
\;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{F}{\sin B \cdot \left({\left(\frac{1}{{-1}^{1} \cdot {F}^{1}}\right)}^{1} \cdot 1 + F \cdot {\left(\frac{1}{{-1}^{1}}\right)}^{1}\right)}\\

\mathbf{elif}\;F \le 21340.5240688307094387710094451904296875:\\
\;\;\;\;\left(-\frac{x \cdot 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)}}\\

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

\end{array}
double f(double F, double B, double x) {
        double r50633 = x;
        double r50634 = 1.0;
        double r50635 = B;
        double r50636 = tan(r50635);
        double r50637 = r50634 / r50636;
        double r50638 = r50633 * r50637;
        double r50639 = -r50638;
        double r50640 = F;
        double r50641 = sin(r50635);
        double r50642 = r50640 / r50641;
        double r50643 = r50640 * r50640;
        double r50644 = 2.0;
        double r50645 = r50643 + r50644;
        double r50646 = r50644 * r50633;
        double r50647 = r50645 + r50646;
        double r50648 = r50634 / r50644;
        double r50649 = -r50648;
        double r50650 = pow(r50647, r50649);
        double r50651 = r50642 * r50650;
        double r50652 = r50639 + r50651;
        return r50652;
}

double f(double F, double B, double x) {
        double r50653 = F;
        double r50654 = -1.3339397503581329e+154;
        bool r50655 = r50653 <= r50654;
        double r50656 = x;
        double r50657 = 1.0;
        double r50658 = r50656 * r50657;
        double r50659 = B;
        double r50660 = tan(r50659);
        double r50661 = r50658 / r50660;
        double r50662 = -r50661;
        double r50663 = sin(r50659);
        double r50664 = 1.0;
        double r50665 = -1.0;
        double r50666 = pow(r50665, r50657);
        double r50667 = pow(r50653, r50657);
        double r50668 = r50666 * r50667;
        double r50669 = r50664 / r50668;
        double r50670 = pow(r50669, r50657);
        double r50671 = r50670 * r50657;
        double r50672 = r50664 / r50666;
        double r50673 = pow(r50672, r50657);
        double r50674 = r50653 * r50673;
        double r50675 = r50671 + r50674;
        double r50676 = r50663 * r50675;
        double r50677 = r50653 / r50676;
        double r50678 = r50662 + r50677;
        double r50679 = 21340.52406883071;
        bool r50680 = r50653 <= r50679;
        double r50681 = r50653 * r50653;
        double r50682 = 2.0;
        double r50683 = r50681 + r50682;
        double r50684 = r50682 * r50656;
        double r50685 = r50683 + r50684;
        double r50686 = r50657 / r50682;
        double r50687 = pow(r50685, r50686);
        double r50688 = r50663 * r50687;
        double r50689 = r50653 / r50688;
        double r50690 = r50662 + r50689;
        double r50691 = r50657 / r50660;
        double r50692 = r50656 * r50691;
        double r50693 = -r50692;
        double r50694 = r50664 / r50663;
        double r50695 = 2.0;
        double r50696 = pow(r50653, r50695);
        double r50697 = r50663 * r50696;
        double r50698 = r50657 / r50697;
        double r50699 = r50694 - r50698;
        double r50700 = r50693 + r50699;
        double r50701 = r50680 ? r50690 : r50700;
        double r50702 = r50655 ? r50678 : r50701;
        return r50702;
}

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.3339397503581329e+154

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

      \[\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. Using strategy rm
    5. Applied associate-*r/35.0

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

      \[\leadsto \left(-\frac{x \cdot 1}{\tan B}\right) + \frac{F \cdot \color{blue}{\frac{1}{{\left(\left(F \cdot F + 2\right) + 2 \cdot x\right)}^{\left(\frac{1}{2}\right)}}}}{\sin B}\]
    8. Applied un-div-inv35.0

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

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

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

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

    if -1.3339397503581329e+154 < F < 21340.52406883071

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

      \[\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. Using strategy rm
    5. Applied associate-*r/0.3

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

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

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

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

    if 21340.52406883071 < F

    1. Initial program 24.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/18.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. Taylor expanded around inf 0.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;F \le -1.333939750358132910414665699471913882429 \cdot 10^{154}:\\ \;\;\;\;\left(-\frac{x \cdot 1}{\tan B}\right) + \frac{F}{\sin B \cdot \left({\left(\frac{1}{{-1}^{1} \cdot {F}^{1}}\right)}^{1} \cdot 1 + F \cdot {\left(\frac{1}{{-1}^{1}}\right)}^{1}\right)}\\ \mathbf{elif}\;F \le 21340.5240688307094387710094451904296875:\\ \;\;\;\;\left(-\frac{x \cdot 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)}}\\ \mathbf{else}:\\ \;\;\;\;\left(-x \cdot \frac{1}{\tan B}\right) + \left(\frac{1}{\sin B} - \frac{1}{\sin B \cdot {F}^{2}}\right)\\ \end{array}\]

Reproduce

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