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(y \cdot 4\right)\right)\right) - \left(-t\right) \cdot \left(y \cdot 4\right)
double f(double x, double y, double z, double t) {
double r876588 = x;
double r876589 = r876588 * r876588;
double r876590 = y;
double r876591 = 4.0;
double r876592 = r876590 * r876591;
double r876593 = z;
double r876594 = r876593 * r876593;
double r876595 = t;
double r876596 = r876594 - r876595;
double r876597 = r876592 * r876596;
double r876598 = r876589 - r876597;
return r876598;
}
double f(double x, double y, double z, double t) {
double r876599 = x;
double r876600 = r876599 * r876599;
double r876601 = z;
double r876602 = y;
double r876603 = 4.0;
double r876604 = r876602 * r876603;
double r876605 = r876601 * r876604;
double r876606 = r876601 * r876605;
double r876607 = r876600 - r876606;
double r876608 = t;
double r876609 = -r876608;
double r876610 = r876609 * r876604;
double r876611 = r876607 - r876610;
return r876611;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.1 |
|---|---|
| Target | 6.1 |
| Herbie | 0.1 |
Initial program 6.1
rmApplied sub-neg6.1
Applied distribute-rgt-in6.1
Applied associate--r+6.1
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2020057
(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))))