Average Error: 0.0 → 0.0
Time: 7.6s
Precision: 64
\[\left(\frac{1}{8} \cdot x - \frac{y \cdot z}{2}\right) + t\]
\[\left(\frac{1}{8} \cdot x - \frac{y \cdot z}{2}\right) + t\]
\left(\frac{1}{8} \cdot x - \frac{y \cdot z}{2}\right) + t
\left(\frac{1}{8} \cdot x - \frac{y \cdot z}{2}\right) + t
double f(double x, double y, double z, double t) {
        double r827927 = 1.0;
        double r827928 = 8.0;
        double r827929 = r827927 / r827928;
        double r827930 = x;
        double r827931 = r827929 * r827930;
        double r827932 = y;
        double r827933 = z;
        double r827934 = r827932 * r827933;
        double r827935 = 2.0;
        double r827936 = r827934 / r827935;
        double r827937 = r827931 - r827936;
        double r827938 = t;
        double r827939 = r827937 + r827938;
        return r827939;
}

double f(double x, double y, double z, double t) {
        double r827940 = 1.0;
        double r827941 = 8.0;
        double r827942 = r827940 / r827941;
        double r827943 = x;
        double r827944 = r827942 * r827943;
        double r827945 = y;
        double r827946 = z;
        double r827947 = r827945 * r827946;
        double r827948 = 2.0;
        double r827949 = r827947 / r827948;
        double r827950 = r827944 - r827949;
        double r827951 = t;
        double r827952 = r827950 + r827951;
        return r827952;
}

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

Original0.0
Target0.0
Herbie0.0
\[\left(\frac{x}{8} + t\right) - \frac{z}{2} \cdot y\]

Derivation

  1. Initial program 0.0

    \[\left(\frac{1}{8} \cdot x - \frac{y \cdot z}{2}\right) + t\]
  2. Final simplification0.0

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

Reproduce

herbie shell --seed 2020060 +o rules:numerics
(FPCore (x y z t)
  :name "Diagrams.Solve.Polynomial:quartForm  from diagrams-solve-0.1, B"
  :precision binary64

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

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