x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(\left(\left(y \cdot 4\right) \cdot z\right) \cdot z + \left(y \cdot 4\right) \cdot \left(-t\right)\right)
double f(double x, double y, double z, double t) {
double r711128 = x;
double r711129 = r711128 * r711128;
double r711130 = y;
double r711131 = 4.0;
double r711132 = r711130 * r711131;
double r711133 = z;
double r711134 = r711133 * r711133;
double r711135 = t;
double r711136 = r711134 - r711135;
double r711137 = r711132 * r711136;
double r711138 = r711129 - r711137;
return r711138;
}
double f(double x, double y, double z, double t) {
double r711139 = x;
double r711140 = r711139 * r711139;
double r711141 = y;
double r711142 = 4.0;
double r711143 = r711141 * r711142;
double r711144 = z;
double r711145 = r711143 * r711144;
double r711146 = r711145 * r711144;
double r711147 = t;
double r711148 = -r711147;
double r711149 = r711143 * r711148;
double r711150 = r711146 + r711149;
double r711151 = r711140 - r711150;
return r711151;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 5.9 |
|---|---|
| Target | 5.9 |
| Herbie | 0.1 |
Initial program 5.9
rmApplied sub-neg5.9
Applied distribute-lft-in5.9
rmApplied associate-*r*0.1
Final simplification0.1
herbie shell --seed 2020001
(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))))