Average Error: 0.0 → 0.0
Time: 860.0ms
Precision: 64
\[x \cdot x - \left(y \cdot 4\right) \cdot z\]
\[x \cdot x - \left(y \cdot 4\right) \cdot z\]
x \cdot x - \left(y \cdot 4\right) \cdot z
x \cdot x - \left(y \cdot 4\right) \cdot z
double f(double x, double y, double z) {
        double r159831 = x;
        double r159832 = r159831 * r159831;
        double r159833 = y;
        double r159834 = 4.0;
        double r159835 = r159833 * r159834;
        double r159836 = z;
        double r159837 = r159835 * r159836;
        double r159838 = r159832 - r159837;
        return r159838;
}

double f(double x, double y, double z) {
        double r159839 = x;
        double r159840 = r159839 * r159839;
        double r159841 = y;
        double r159842 = 4.0;
        double r159843 = r159841 * r159842;
        double r159844 = z;
        double r159845 = r159843 * r159844;
        double r159846 = r159840 - r159845;
        return r159846;
}

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 0.0

    \[x \cdot x - \left(y \cdot 4\right) \cdot z\]
  2. Final simplification0.0

    \[\leadsto x \cdot x - \left(y \cdot 4\right) \cdot z\]

Reproduce

herbie shell --seed 2019347 +o rules:numerics
(FPCore (x y z)
  :name "Graphics.Rasterific.QuadraticFormula:discriminant from Rasterific-0.6.1"
  :precision binary64
  (- (* x x) (* (* y 4) z)))