x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\left(x \cdot x - \left(\left(y \cdot 4\right) \cdot z\right) \cdot z\right) - \left(-t\right) \cdot \left(y \cdot 4\right)
double f(double x, double y, double z, double t) {
double r436212 = x;
double r436213 = r436212 * r436212;
double r436214 = y;
double r436215 = 4.0;
double r436216 = r436214 * r436215;
double r436217 = z;
double r436218 = r436217 * r436217;
double r436219 = t;
double r436220 = r436218 - r436219;
double r436221 = r436216 * r436220;
double r436222 = r436213 - r436221;
return r436222;
}
double f(double x, double y, double z, double t) {
double r436223 = x;
double r436224 = r436223 * r436223;
double r436225 = y;
double r436226 = 4.0;
double r436227 = r436225 * r436226;
double r436228 = z;
double r436229 = r436227 * r436228;
double r436230 = r436229 * r436228;
double r436231 = r436224 - r436230;
double r436232 = t;
double r436233 = -r436232;
double r436234 = r436233 * r436227;
double r436235 = r436231 - r436234;
return r436235;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.3 |
|---|---|
| Target | 6.3 |
| Herbie | 0.1 |
Initial program 6.3
rmApplied sub-neg6.3
Applied distribute-rgt-in6.3
Applied associate--r+6.3
Simplified6.3
rmApplied associate-*r*0.1
Final simplification0.1
herbie shell --seed 2019326
(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))))