Average Error: 0.2 → 0.2
Time: 12.2s
Precision: 64
\[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}\]
\[1 \cdot \left(\frac{1}{\sin B} - \frac{x \cdot \cos B}{\sin B}\right)\]
\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}
1 \cdot \left(\frac{1}{\sin B} - \frac{x \cdot \cos B}{\sin B}\right)
double f(double B, double x) {
        double r72861 = x;
        double r72862 = 1.0;
        double r72863 = B;
        double r72864 = tan(r72863);
        double r72865 = r72862 / r72864;
        double r72866 = r72861 * r72865;
        double r72867 = -r72866;
        double r72868 = sin(r72863);
        double r72869 = r72862 / r72868;
        double r72870 = r72867 + r72869;
        return r72870;
}

double f(double B, double x) {
        double r72871 = 1.0;
        double r72872 = 1.0;
        double r72873 = B;
        double r72874 = sin(r72873);
        double r72875 = r72872 / r72874;
        double r72876 = x;
        double r72877 = cos(r72873);
        double r72878 = r72876 * r72877;
        double r72879 = r72878 / r72874;
        double r72880 = r72875 - r72879;
        double r72881 = r72871 * r72880;
        return r72881;
}

Error

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 0.2

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

    \[\leadsto \color{blue}{1 \cdot \frac{1}{\sin B} - 1 \cdot \frac{x \cdot \cos B}{\sin B}}\]
  3. Simplified0.2

    \[\leadsto \color{blue}{1 \cdot \left(\frac{1}{\sin B} - \frac{x \cdot \cos B}{\sin B}\right)}\]
  4. Final simplification0.2

    \[\leadsto 1 \cdot \left(\frac{1}{\sin B} - \frac{x \cdot \cos B}{\sin B}\right)\]

Reproduce

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