x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\left(y \cdot 4\right) \cdot t + \left({x}^{2} - \left(z \cdot \left(y \cdot 4\right)\right) \cdot z\right)double f(double x, double y, double z, double t) {
double r520948 = x;
double r520949 = r520948 * r520948;
double r520950 = y;
double r520951 = 4.0;
double r520952 = r520950 * r520951;
double r520953 = z;
double r520954 = r520953 * r520953;
double r520955 = t;
double r520956 = r520954 - r520955;
double r520957 = r520952 * r520956;
double r520958 = r520949 - r520957;
return r520958;
}
double f(double x, double y, double z, double t) {
double r520959 = y;
double r520960 = 4.0;
double r520961 = r520959 * r520960;
double r520962 = t;
double r520963 = r520961 * r520962;
double r520964 = x;
double r520965 = 2.0;
double r520966 = pow(r520964, r520965);
double r520967 = z;
double r520968 = r520967 * r520961;
double r520969 = r520968 * r520967;
double r520970 = r520966 - r520969;
double r520971 = r520963 + r520970;
return r520971;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.0 |
|---|---|
| Target | 6.0 |
| Herbie | 0.1 |
Initial program 6.0
Simplified6.0
rmApplied sub-neg6.0
Applied distribute-rgt-in6.0
Applied associate-+l+6.0
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194
(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))))