Average Error: 5.9 → 0.1
Time: 44.5s
Precision: 64
\[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]
\[\left(x \cdot x + \left(t \cdot y\right) \cdot 4\right) - 4 \cdot \left(\left(z \cdot y\right) \cdot z\right)\]
x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\left(x \cdot x + \left(t \cdot y\right) \cdot 4\right) - 4 \cdot \left(\left(z \cdot y\right) \cdot z\right)
double f(double x, double y, double z, double t) {
        double r31317470 = x;
        double r31317471 = r31317470 * r31317470;
        double r31317472 = y;
        double r31317473 = 4.0;
        double r31317474 = r31317472 * r31317473;
        double r31317475 = z;
        double r31317476 = r31317475 * r31317475;
        double r31317477 = t;
        double r31317478 = r31317476 - r31317477;
        double r31317479 = r31317474 * r31317478;
        double r31317480 = r31317471 - r31317479;
        return r31317480;
}

double f(double x, double y, double z, double t) {
        double r31317481 = x;
        double r31317482 = r31317481 * r31317481;
        double r31317483 = t;
        double r31317484 = y;
        double r31317485 = r31317483 * r31317484;
        double r31317486 = 4.0;
        double r31317487 = r31317485 * r31317486;
        double r31317488 = r31317482 + r31317487;
        double r31317489 = z;
        double r31317490 = r31317489 * r31317484;
        double r31317491 = r31317490 * r31317489;
        double r31317492 = r31317486 * r31317491;
        double r31317493 = r31317488 - r31317492;
        return r31317493;
}

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. Taylor expanded around inf 5.9

    \[\leadsto \color{blue}{\left(4 \cdot \left(t \cdot y\right) + {x}^{2}\right) - 4 \cdot \left({z}^{2} \cdot y\right)}\]
  3. Simplified0.1

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

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

Reproduce

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

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

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