x \cdot x - \left(y \cdot 4.0\right) \cdot \left(z \cdot z - t\right)
\left(x \cdot x + \left(t \cdot 4.0\right) \cdot y\right) - z \cdot \left(\left(4.0 \cdot y\right) \cdot z\right)
double f(double x, double y, double z, double t) {
double r35639114 = x;
double r35639115 = r35639114 * r35639114;
double r35639116 = y;
double r35639117 = 4.0;
double r35639118 = r35639116 * r35639117;
double r35639119 = z;
double r35639120 = r35639119 * r35639119;
double r35639121 = t;
double r35639122 = r35639120 - r35639121;
double r35639123 = r35639118 * r35639122;
double r35639124 = r35639115 - r35639123;
return r35639124;
}
double f(double x, double y, double z, double t) {
double r35639125 = x;
double r35639126 = r35639125 * r35639125;
double r35639127 = t;
double r35639128 = 4.0;
double r35639129 = r35639127 * r35639128;
double r35639130 = y;
double r35639131 = r35639129 * r35639130;
double r35639132 = r35639126 + r35639131;
double r35639133 = z;
double r35639134 = r35639128 * r35639130;
double r35639135 = r35639134 * r35639133;
double r35639136 = r35639133 * r35639135;
double r35639137 = r35639132 - r35639136;
return r35639137;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 5.4 |
|---|---|
| Target | 5.4 |
| Herbie | 0.1 |
Initial program 5.4
Taylor expanded around inf 5.4
Simplified0.1
Final simplification0.1
herbie shell --seed 2019164
(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))))