Average Error: 0.2 → 0.2
Time: 21.3s
Precision: 64
\[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}\]
\[\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \frac{\sqrt[3]{1}}{\sin B}, -\cos B \cdot \frac{x \cdot 1}{\sin B}\right) + \frac{x \cdot \cos B}{\sin B} \cdot \left(\left(-1\right) + 1\right)\]
\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}
\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \frac{\sqrt[3]{1}}{\sin B}, -\cos B \cdot \frac{x \cdot 1}{\sin B}\right) + \frac{x \cdot \cos B}{\sin B} \cdot \left(\left(-1\right) + 1\right)
double f(double B, double x) {
        double r25449 = x;
        double r25450 = 1.0;
        double r25451 = B;
        double r25452 = tan(r25451);
        double r25453 = r25450 / r25452;
        double r25454 = r25449 * r25453;
        double r25455 = -r25454;
        double r25456 = sin(r25451);
        double r25457 = r25450 / r25456;
        double r25458 = r25455 + r25457;
        return r25458;
}

double f(double B, double x) {
        double r25459 = 1.0;
        double r25460 = cbrt(r25459);
        double r25461 = r25460 * r25460;
        double r25462 = B;
        double r25463 = sin(r25462);
        double r25464 = r25460 / r25463;
        double r25465 = cos(r25462);
        double r25466 = x;
        double r25467 = r25466 * r25459;
        double r25468 = r25467 / r25463;
        double r25469 = r25465 * r25468;
        double r25470 = -r25469;
        double r25471 = fma(r25461, r25464, r25470);
        double r25472 = r25466 * r25465;
        double r25473 = r25472 / r25463;
        double r25474 = -r25459;
        double r25475 = r25474 + r25459;
        double r25476 = r25473 * r25475;
        double r25477 = r25471 + r25476;
        return r25477;
}

Error

Bits error versus B

Bits error versus x

Derivation

  1. Initial program 0.2

    \[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}\]
  2. Simplified0.2

    \[\leadsto \color{blue}{\frac{1}{\sin B} - x \cdot \frac{1}{\tan B}}\]
  3. Using strategy rm
  4. Applied associate-*r/0.1

    \[\leadsto \frac{1}{\sin B} - \color{blue}{\frac{x \cdot 1}{\tan B}}\]
  5. Using strategy rm
  6. Applied tan-quot0.2

    \[\leadsto \frac{1}{\sin B} - \frac{x \cdot 1}{\color{blue}{\frac{\sin B}{\cos B}}}\]
  7. Applied associate-/r/0.2

    \[\leadsto \frac{1}{\sin B} - \color{blue}{\frac{x \cdot 1}{\sin B} \cdot \cos B}\]
  8. Applied *-un-lft-identity0.2

    \[\leadsto \frac{1}{\color{blue}{1 \cdot \sin B}} - \frac{x \cdot 1}{\sin B} \cdot \cos B\]
  9. Applied add-cube-cbrt0.2

    \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{1 \cdot \sin B} - \frac{x \cdot 1}{\sin B} \cdot \cos B\]
  10. Applied times-frac0.2

    \[\leadsto \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{1} \cdot \frac{\sqrt[3]{1}}{\sin B}} - \frac{x \cdot 1}{\sin B} \cdot \cos B\]
  11. Applied prod-diff0.2

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{1}, \frac{\sqrt[3]{1}}{\sin B}, -\cos B \cdot \frac{x \cdot 1}{\sin B}\right) + \mathsf{fma}\left(-\cos B, \frac{x \cdot 1}{\sin B}, \cos B \cdot \frac{x \cdot 1}{\sin B}\right)}\]
  12. Simplified0.2

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \frac{\sqrt[3]{1}}{\sin B}, -\cos B \cdot \frac{x \cdot 1}{\sin B}\right)} + \mathsf{fma}\left(-\cos B, \frac{x \cdot 1}{\sin B}, \cos B \cdot \frac{x \cdot 1}{\sin B}\right)\]
  13. Simplified0.2

    \[\leadsto \mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \frac{\sqrt[3]{1}}{\sin B}, -\cos B \cdot \frac{x \cdot 1}{\sin B}\right) + \color{blue}{\frac{x \cdot \cos B}{\sin B} \cdot \left(\left(-1\right) + 1\right)}\]
  14. Final simplification0.2

    \[\leadsto \mathsf{fma}\left(\sqrt[3]{1} \cdot \sqrt[3]{1}, \frac{\sqrt[3]{1}}{\sin B}, -\cos B \cdot \frac{x \cdot 1}{\sin B}\right) + \frac{x \cdot \cos B}{\sin B} \cdot \left(\left(-1\right) + 1\right)\]

Reproduce

herbie shell --seed 2019303 +o rules:numerics
(FPCore (B x)
  :name "VandenBroeck and Keller, Equation (24)"
  :precision binary64
  (+ (- (* x (/ 1 (tan B)))) (/ 1 (sin B))))