x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
x \cdot x - \left(z \cdot \left(z \cdot \left(y \cdot 4\right)\right) + \left(-t\right) \cdot \left(y \cdot 4\right)\right)
double f(double x, double y, double z, double t) {
double r535128 = x;
double r535129 = r535128 * r535128;
double r535130 = y;
double r535131 = 4.0;
double r535132 = r535130 * r535131;
double r535133 = z;
double r535134 = r535133 * r535133;
double r535135 = t;
double r535136 = r535134 - r535135;
double r535137 = r535132 * r535136;
double r535138 = r535129 - r535137;
return r535138;
}
double f(double x, double y, double z, double t) {
double r535139 = x;
double r535140 = r535139 * r535139;
double r535141 = z;
double r535142 = y;
double r535143 = 4.0;
double r535144 = r535142 * r535143;
double r535145 = r535141 * r535144;
double r535146 = r535141 * r535145;
double r535147 = t;
double r535148 = -r535147;
double r535149 = r535148 * r535144;
double r535150 = r535146 + r535149;
double r535151 = r535140 - r535150;
return r535151;
}




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
Simplified5.9
Simplified5.9
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019235
(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))))