Average Error: 0.0 → 0.1
Time: 1.1s
Precision: 64
\[x \cdot x - \left(y \cdot 4\right) \cdot z\]
\[x \cdot x - y \cdot \left(4 \cdot z\right)\]
x \cdot x - \left(y \cdot 4\right) \cdot z
x \cdot x - y \cdot \left(4 \cdot z\right)
double f(double x, double y, double z) {
        double r214258 = x;
        double r214259 = r214258 * r214258;
        double r214260 = y;
        double r214261 = 4.0;
        double r214262 = r214260 * r214261;
        double r214263 = z;
        double r214264 = r214262 * r214263;
        double r214265 = r214259 - r214264;
        return r214265;
}

double f(double x, double y, double z) {
        double r214266 = x;
        double r214267 = r214266 * r214266;
        double r214268 = y;
        double r214269 = 4.0;
        double r214270 = z;
        double r214271 = r214269 * r214270;
        double r214272 = r214268 * r214271;
        double r214273 = r214267 - r214272;
        return r214273;
}

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. Using strategy rm
  3. Applied associate-*l*0.1

    \[\leadsto x \cdot x - \color{blue}{y \cdot \left(4 \cdot z\right)}\]
  4. Final simplification0.1

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

Reproduce

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