x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\left(x \cdot x - z \cdot \left(z \cdot \left(4 \cdot y\right)\right)\right) + \left(4 \cdot y\right) \cdot t
double f(double x, double y, double z, double t) {
double r31243106 = x;
double r31243107 = r31243106 * r31243106;
double r31243108 = y;
double r31243109 = 4.0;
double r31243110 = r31243108 * r31243109;
double r31243111 = z;
double r31243112 = r31243111 * r31243111;
double r31243113 = t;
double r31243114 = r31243112 - r31243113;
double r31243115 = r31243110 * r31243114;
double r31243116 = r31243107 - r31243115;
return r31243116;
}
double f(double x, double y, double z, double t) {
double r31243117 = x;
double r31243118 = r31243117 * r31243117;
double r31243119 = z;
double r31243120 = 4.0;
double r31243121 = y;
double r31243122 = r31243120 * r31243121;
double r31243123 = r31243119 * r31243122;
double r31243124 = r31243119 * r31243123;
double r31243125 = r31243118 - r31243124;
double r31243126 = t;
double r31243127 = r31243122 * r31243126;
double r31243128 = r31243125 + r31243127;
return r31243128;
}




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
Taylor expanded around inf 6.0
Simplified0.1
Final simplification0.1
herbie shell --seed 2019172
(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))))