Average Error: 0.1 → 0.1
Time: 1.3s
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 r9545084 = x;
        double r9545085 = r9545084 * r9545084;
        double r9545086 = y;
        double r9545087 = 4.0;
        double r9545088 = r9545086 * r9545087;
        double r9545089 = z;
        double r9545090 = r9545088 * r9545089;
        double r9545091 = r9545085 - r9545090;
        return r9545091;
}

double f(double x, double y, double z) {
        double r9545092 = x;
        double r9545093 = r9545092 * r9545092;
        double r9545094 = y;
        double r9545095 = 4.0;
        double r9545096 = r9545094 * r9545095;
        double r9545097 = z;
        double r9545098 = r9545096 * r9545097;
        double r9545099 = r9545093 - r9545098;
        return r9545099;
}

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

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

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

Reproduce

herbie shell --seed 2019170 
(FPCore (x y z)
  :name "Graphics.Rasterific.QuadraticFormula:discriminant from Rasterific-0.6.1"
  (- (* x x) (* (* y 4.0) z)))