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 r34006462 = x;
double r34006463 = r34006462 * r34006462;
double r34006464 = y;
double r34006465 = 4.0;
double r34006466 = r34006464 * r34006465;
double r34006467 = z;
double r34006468 = r34006467 * r34006467;
double r34006469 = t;
double r34006470 = r34006468 - r34006469;
double r34006471 = r34006466 * r34006470;
double r34006472 = r34006463 - r34006471;
return r34006472;
}
double f(double x, double y, double z, double t) {
double r34006473 = x;
double r34006474 = r34006473 * r34006473;
double r34006475 = z;
double r34006476 = 4.0;
double r34006477 = y;
double r34006478 = r34006476 * r34006477;
double r34006479 = r34006475 * r34006478;
double r34006480 = r34006475 * r34006479;
double r34006481 = r34006474 - r34006480;
double r34006482 = t;
double r34006483 = r34006478 * r34006482;
double r34006484 = r34006481 + r34006483;
return r34006484;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 5.8 |
|---|---|
| Target | 5.8 |
| Herbie | 0.1 |
Initial program 5.8
Taylor expanded around inf 5.8
Simplified0.1
Final simplification0.1
herbie shell --seed 2019171
(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))))