Average Error: 0.1 → 0.1
Time: 637.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 r135811 = x;
        double r135812 = r135811 * r135811;
        double r135813 = y;
        double r135814 = 4.0;
        double r135815 = r135813 * r135814;
        double r135816 = z;
        double r135817 = r135815 * r135816;
        double r135818 = r135812 - r135817;
        return r135818;
}

double f(double x, double y, double z) {
        double r135819 = x;
        double r135820 = r135819 * r135819;
        double r135821 = y;
        double r135822 = 4.0;
        double r135823 = r135821 * r135822;
        double r135824 = z;
        double r135825 = r135823 * r135824;
        double r135826 = r135820 - r135825;
        return r135826;
}

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 2020018 +o rules:numerics
(FPCore (x y z)
  :name "Graphics.Rasterific.QuadraticFormula:discriminant from Rasterific-0.6.1"
  :precision binary64
  (- (* x x) (* (* y 4) z)))