Average Error: 7.6 → 0.3
Time: 13.9s
Precision: 64
\[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
\[\frac{\left(\frac{y}{t - \frac{x}{z}} - x \cdot \frac{1}{t \cdot z - x}\right) + x}{x + 1}\]
\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}
\frac{\left(\frac{y}{t - \frac{x}{z}} - x \cdot \frac{1}{t \cdot z - x}\right) + x}{x + 1}
double f(double x, double y, double z, double t) {
        double r577172 = x;
        double r577173 = y;
        double r577174 = z;
        double r577175 = r577173 * r577174;
        double r577176 = r577175 - r577172;
        double r577177 = t;
        double r577178 = r577177 * r577174;
        double r577179 = r577178 - r577172;
        double r577180 = r577176 / r577179;
        double r577181 = r577172 + r577180;
        double r577182 = 1.0;
        double r577183 = r577172 + r577182;
        double r577184 = r577181 / r577183;
        return r577184;
}

double f(double x, double y, double z, double t) {
        double r577185 = y;
        double r577186 = t;
        double r577187 = x;
        double r577188 = z;
        double r577189 = r577187 / r577188;
        double r577190 = r577186 - r577189;
        double r577191 = r577185 / r577190;
        double r577192 = 1.0;
        double r577193 = r577186 * r577188;
        double r577194 = r577193 - r577187;
        double r577195 = r577192 / r577194;
        double r577196 = r577187 * r577195;
        double r577197 = r577191 - r577196;
        double r577198 = r577197 + r577187;
        double r577199 = 1.0;
        double r577200 = r577187 + r577199;
        double r577201 = r577198 / r577200;
        return r577201;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original7.6
Target0.3
Herbie0.3
\[\frac{x + \left(\frac{y}{t - \frac{x}{z}} - \frac{x}{t \cdot z - x}\right)}{x + 1}\]

Derivation

  1. Initial program 7.6

    \[\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\]
  2. Using strategy rm
  3. Applied div-sub7.6

    \[\leadsto \frac{x + \color{blue}{\left(\frac{y \cdot z}{t \cdot z - x} - \frac{x}{t \cdot z - x}\right)}}{x + 1}\]
  4. Simplified2.4

    \[\leadsto \frac{x + \left(\color{blue}{\frac{z}{t \cdot z - x} \cdot y} - \frac{x}{t \cdot z - x}\right)}{x + 1}\]
  5. Using strategy rm
  6. Applied div-inv2.4

    \[\leadsto \frac{x + \left(\frac{z}{t \cdot z - x} \cdot y - \color{blue}{x \cdot \frac{1}{t \cdot z - x}}\right)}{x + 1}\]
  7. Using strategy rm
  8. Applied *-un-lft-identity2.4

    \[\leadsto \frac{x + \left(\color{blue}{\left(1 \cdot \frac{z}{t \cdot z - x}\right)} \cdot y - x \cdot \frac{1}{t \cdot z - x}\right)}{x + 1}\]
  9. Applied associate-*l*2.4

    \[\leadsto \frac{x + \left(\color{blue}{1 \cdot \left(\frac{z}{t \cdot z - x} \cdot y\right)} - x \cdot \frac{1}{t \cdot z - x}\right)}{x + 1}\]
  10. Simplified0.3

    \[\leadsto \frac{x + \left(1 \cdot \color{blue}{\frac{y}{t - \frac{x}{z}}} - x \cdot \frac{1}{t \cdot z - x}\right)}{x + 1}\]
  11. Final simplification0.3

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

Reproduce

herbie shell --seed 2019350 
(FPCore (x y z t)
  :name "Diagrams.Trail:splitAtParam  from diagrams-lib-1.3.0.3, A"
  :precision binary64

  :herbie-target
  (/ (+ x (- (/ y (- t (/ x z))) (/ x (- (* t z) x)))) (+ x 1))

  (/ (+ x (/ (- (* y z) x) (- (* t z) x))) (+ x 1)))