x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\left(x \cdot x + \left(t \cdot y\right) \cdot 4\right) - 4 \cdot \left(\left(z \cdot y\right) \cdot z\right)
double f(double x, double y, double z, double t) {
double r31317470 = x;
double r31317471 = r31317470 * r31317470;
double r31317472 = y;
double r31317473 = 4.0;
double r31317474 = r31317472 * r31317473;
double r31317475 = z;
double r31317476 = r31317475 * r31317475;
double r31317477 = t;
double r31317478 = r31317476 - r31317477;
double r31317479 = r31317474 * r31317478;
double r31317480 = r31317471 - r31317479;
return r31317480;
}
double f(double x, double y, double z, double t) {
double r31317481 = x;
double r31317482 = r31317481 * r31317481;
double r31317483 = t;
double r31317484 = y;
double r31317485 = r31317483 * r31317484;
double r31317486 = 4.0;
double r31317487 = r31317485 * r31317486;
double r31317488 = r31317482 + r31317487;
double r31317489 = z;
double r31317490 = r31317489 * r31317484;
double r31317491 = r31317490 * r31317489;
double r31317492 = r31317486 * r31317491;
double r31317493 = r31317488 - r31317492;
return r31317493;
}




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