Average Error: 0.2 → 0.2
Time: 22.5s
Precision: 64
\[\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}\]
\[\left(-1 \cdot \frac{x \cdot \cos B}{\sin B}\right) + \frac{1}{\sin B}\]
\left(-x \cdot \frac{1}{\tan B}\right) + \frac{1}{\sin B}
\left(-1 \cdot \frac{x \cdot \cos B}{\sin B}\right) + \frac{1}{\sin B}
double f(double B, double x) {
        double r44140 = x;
        double r44141 = 1.0;
        double r44142 = B;
        double r44143 = tan(r44142);
        double r44144 = r44141 / r44143;
        double r44145 = r44140 * r44144;
        double r44146 = -r44145;
        double r44147 = sin(r44142);
        double r44148 = r44141 / r44147;
        double r44149 = r44146 + r44148;
        return r44149;
}

double f(double B, double x) {
        double r44150 = 1.0;
        double r44151 = x;
        double r44152 = B;
        double r44153 = cos(r44152);
        double r44154 = r44151 * r44153;
        double r44155 = sin(r44152);
        double r44156 = r44154 / r44155;
        double r44157 = r44150 * r44156;
        double r44158 = -r44157;
        double r44159 = r44150 / r44155;
        double r44160 = r44158 + r44159;
        return r44160;
}

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 \left(-\color{blue}{1 \cdot \frac{x \cdot \cos B}{\sin B}}\right) + \frac{1}{\sin B}\]
  3. Final simplification0.2

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

Reproduce

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