Average Error: 1.6 → 1.7
Time: 3.8s
Precision: 64
\[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
\[\left|\frac{1}{\frac{y}{x + 4}} - \frac{x}{y} \cdot z\right|\]
\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|
\left|\frac{1}{\frac{y}{x + 4}} - \frac{x}{y} \cdot z\right|
double f(double x, double y, double z) {
        double r31569 = x;
        double r31570 = 4.0;
        double r31571 = r31569 + r31570;
        double r31572 = y;
        double r31573 = r31571 / r31572;
        double r31574 = r31569 / r31572;
        double r31575 = z;
        double r31576 = r31574 * r31575;
        double r31577 = r31573 - r31576;
        double r31578 = fabs(r31577);
        return r31578;
}

double f(double x, double y, double z) {
        double r31579 = 1.0;
        double r31580 = y;
        double r31581 = x;
        double r31582 = 4.0;
        double r31583 = r31581 + r31582;
        double r31584 = r31580 / r31583;
        double r31585 = r31579 / r31584;
        double r31586 = r31581 / r31580;
        double r31587 = z;
        double r31588 = r31586 * r31587;
        double r31589 = r31585 - r31588;
        double r31590 = fabs(r31589);
        return r31590;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.6

    \[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
  2. Using strategy rm
  3. Applied clear-num1.7

    \[\leadsto \left|\color{blue}{\frac{1}{\frac{y}{x + 4}}} - \frac{x}{y} \cdot z\right|\]
  4. Final simplification1.7

    \[\leadsto \left|\frac{1}{\frac{y}{x + 4}} - \frac{x}{y} \cdot z\right|\]

Reproduce

herbie shell --seed 2019354 
(FPCore (x y z)
  :name "fabs fraction 1"
  :precision binary64
  (fabs (- (/ (+ x 4) y) (* (/ x y) z))))