Average Error: 5.6 → 5.6
Time: 10.8s
Precision: 64
\[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]
\[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]
x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
double f(double x, double y, double z, double t) {
        double r474871 = x;
        double r474872 = r474871 * r474871;
        double r474873 = y;
        double r474874 = 4.0;
        double r474875 = r474873 * r474874;
        double r474876 = z;
        double r474877 = r474876 * r474876;
        double r474878 = t;
        double r474879 = r474877 - r474878;
        double r474880 = r474875 * r474879;
        double r474881 = r474872 - r474880;
        return r474881;
}

double f(double x, double y, double z, double t) {
        double r474882 = x;
        double r474883 = r474882 * r474882;
        double r474884 = y;
        double r474885 = 4.0;
        double r474886 = r474884 * r474885;
        double r474887 = z;
        double r474888 = r474887 * r474887;
        double r474889 = t;
        double r474890 = r474888 - r474889;
        double r474891 = r474886 * r474890;
        double r474892 = r474883 - r474891;
        return r474892;
}

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

Original5.6
Target5.6
Herbie5.6
\[x \cdot x - 4 \cdot \left(y \cdot \left(z \cdot z - t\right)\right)\]

Derivation

  1. Initial program 5.6

    \[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]
  2. Using strategy rm
  3. Applied sub-neg5.6

    \[\leadsto x \cdot x - \left(y \cdot 4\right) \cdot \color{blue}{\left(z \cdot z + \left(-t\right)\right)}\]
  4. Applied distribute-lft-in5.6

    \[\leadsto x \cdot x - \color{blue}{\left(\left(y \cdot 4\right) \cdot \left(z \cdot z\right) + \left(y \cdot 4\right) \cdot \left(-t\right)\right)}\]
  5. Using strategy rm
  6. Applied associate-*r*0.1

    \[\leadsto x \cdot x - \left(\color{blue}{\left(\left(y \cdot 4\right) \cdot z\right) \cdot z} + \left(y \cdot 4\right) \cdot \left(-t\right)\right)\]
  7. Final simplification5.6

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

Reproduce

herbie shell --seed 2019297 
(FPCore (x y z t)
  :name "Graphics.Rasterific.Shading:$sradialGradientWithFocusShader from Rasterific-0.6.1, B"
  :precision binary64

  :herbie-target
  (- (* x x) (* 4 (* y (- (* z z) t))))

  (- (* x x) (* (* y 4) (- (* z z) t))))