Average Error: 0.2 → 0.2
Time: 24.4s
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 r24191 = x;
        double r24192 = 1.0;
        double r24193 = B;
        double r24194 = tan(r24193);
        double r24195 = r24192 / r24194;
        double r24196 = r24191 * r24195;
        double r24197 = -r24196;
        double r24198 = sin(r24193);
        double r24199 = r24192 / r24198;
        double r24200 = r24197 + r24199;
        return r24200;
}

double f(double B, double x) {
        double r24201 = 1.0;
        double r24202 = x;
        double r24203 = B;
        double r24204 = cos(r24203);
        double r24205 = r24202 * r24204;
        double r24206 = sin(r24203);
        double r24207 = r24205 / r24206;
        double r24208 = r24201 * r24207;
        double r24209 = -r24208;
        double r24210 = r24201 / r24206;
        double r24211 = r24209 + r24210;
        return r24211;
}

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 2019325 +o rules:numerics
(FPCore (B x)
  :name "VandenBroeck and Keller, Equation (24)"
  :precision binary64
  (+ (- (* x (/ 1 (tan B)))) (/ 1 (sin B))))