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 r735328 = x;
double r735329 = r735328 * r735328;
double r735330 = y;
double r735331 = 4.0;
double r735332 = r735330 * r735331;
double r735333 = z;
double r735334 = r735333 * r735333;
double r735335 = t;
double r735336 = r735334 - r735335;
double r735337 = r735332 * r735336;
double r735338 = r735329 - r735337;
return r735338;
}
double f(double x, double y, double z, double t) {
double r735339 = x;
double r735340 = r735339 * r735339;
double r735341 = y;
double r735342 = 4.0;
double r735343 = r735341 * r735342;
double r735344 = z;
double r735345 = r735343 * r735344;
double r735346 = r735345 * r735344;
double r735347 = t;
double r735348 = -r735347;
double r735349 = r735343 * r735348;
double r735350 = r735346 + r735349;
double r735351 = r735340 - r735350;
return r735351;
}




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))))