Average Error: 5.9 → 0.1
Time: 11.3s
Precision: 64
\[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]
\[x \cdot x - \left(z \cdot \left(z \cdot \left(y \cdot 4\right)\right) + \left(-t\right) \cdot \left(y \cdot 4\right)\right)\]
x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(z \cdot \left(z \cdot \left(y \cdot 4\right)\right) + \left(-t\right) \cdot \left(y \cdot 4\right)\right)
double f(double x, double y, double z, double t) {
        double r535128 = x;
        double r535129 = r535128 * r535128;
        double r535130 = y;
        double r535131 = 4.0;
        double r535132 = r535130 * r535131;
        double r535133 = z;
        double r535134 = r535133 * r535133;
        double r535135 = t;
        double r535136 = r535134 - r535135;
        double r535137 = r535132 * r535136;
        double r535138 = r535129 - r535137;
        return r535138;
}

double f(double x, double y, double z, double t) {
        double r535139 = x;
        double r535140 = r535139 * r535139;
        double r535141 = z;
        double r535142 = y;
        double r535143 = 4.0;
        double r535144 = r535142 * r535143;
        double r535145 = r535141 * r535144;
        double r535146 = r535141 * r535145;
        double r535147 = t;
        double r535148 = -r535147;
        double r535149 = r535148 * r535144;
        double r535150 = r535146 + r535149;
        double r535151 = r535140 - r535150;
        return r535151;
}

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.9
Target5.9
Herbie0.1
\[x \cdot x - 4 \cdot \left(y \cdot \left(z \cdot z - t\right)\right)\]

Derivation

  1. Initial program 5.9

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

    \[\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.9

    \[\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. Simplified5.9

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

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

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

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

Reproduce

herbie shell --seed 2019235 
(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))))