Average Error: 13.3 → 10.7
Time: 2.6m
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)}\]
\[\frac{\frac{1}{\frac{\sin B}{{\left(2 + \left(2 \cdot x + F \cdot F\right)\right)}^{\frac{-1}{2}}}}}{\frac{1}{F}} - \frac{x}{\tan B}\]
\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)}
\frac{\frac{1}{\frac{\sin B}{{\left(2 + \left(2 \cdot x + F \cdot F\right)\right)}^{\frac{-1}{2}}}}}{\frac{1}{F}} - \frac{x}{\tan B}
double f(double F, double B, double x) {
        double r1645275 = x;
        double r1645276 = 1.0;
        double r1645277 = B;
        double r1645278 = tan(r1645277);
        double r1645279 = r1645276 / r1645278;
        double r1645280 = r1645275 * r1645279;
        double r1645281 = -r1645280;
        double r1645282 = F;
        double r1645283 = sin(r1645277);
        double r1645284 = r1645282 / r1645283;
        double r1645285 = r1645282 * r1645282;
        double r1645286 = 2.0;
        double r1645287 = r1645285 + r1645286;
        double r1645288 = r1645286 * r1645275;
        double r1645289 = r1645287 + r1645288;
        double r1645290 = r1645276 / r1645286;
        double r1645291 = -r1645290;
        double r1645292 = pow(r1645289, r1645291);
        double r1645293 = r1645284 * r1645292;
        double r1645294 = r1645281 + r1645293;
        return r1645294;
}

double f(double F, double B, double x) {
        double r1645295 = 1.0;
        double r1645296 = B;
        double r1645297 = sin(r1645296);
        double r1645298 = 2.0;
        double r1645299 = x;
        double r1645300 = r1645298 * r1645299;
        double r1645301 = F;
        double r1645302 = r1645301 * r1645301;
        double r1645303 = r1645300 + r1645302;
        double r1645304 = r1645298 + r1645303;
        double r1645305 = -0.5;
        double r1645306 = pow(r1645304, r1645305);
        double r1645307 = r1645297 / r1645306;
        double r1645308 = r1645295 / r1645307;
        double r1645309 = r1645295 / r1645301;
        double r1645310 = r1645308 / r1645309;
        double r1645311 = tan(r1645296);
        double r1645312 = r1645299 / r1645311;
        double r1645313 = r1645310 - r1645312;
        return r1645313;
}

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. Initial program 13.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. Simplified12.8

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

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

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

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

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

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

Reproduce

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