Average Error: 1.7 → 1.7
Time: 9.3s
Precision: 64
\[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
\[\left|\left(\frac{x}{y} + \frac{4}{y}\right) - z \cdot \frac{x}{y}\right|\]
\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|
\left|\left(\frac{x}{y} + \frac{4}{y}\right) - z \cdot \frac{x}{y}\right|
double f(double x, double y, double z) {
        double r444730 = x;
        double r444731 = 4.0;
        double r444732 = r444730 + r444731;
        double r444733 = y;
        double r444734 = r444732 / r444733;
        double r444735 = r444730 / r444733;
        double r444736 = z;
        double r444737 = r444735 * r444736;
        double r444738 = r444734 - r444737;
        double r444739 = fabs(r444738);
        return r444739;
}

double f(double x, double y, double z) {
        double r444740 = x;
        double r444741 = y;
        double r444742 = r444740 / r444741;
        double r444743 = 4.0;
        double r444744 = r444743 / r444741;
        double r444745 = r444742 + r444744;
        double r444746 = z;
        double r444747 = r444746 * r444742;
        double r444748 = r444745 - r444747;
        double r444749 = fabs(r444748);
        return r444749;
}

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.7

    \[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
  2. Taylor expanded around 0 1.7

    \[\leadsto \left|\color{blue}{\left(\frac{x}{y} + 4 \cdot \frac{1}{y}\right)} - \frac{x}{y} \cdot z\right|\]
  3. Simplified1.7

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

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

Reproduce

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