\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}\frac{x}{y} \cdot \frac{x}{y} + {\left(\left|\frac{z}{t}\right|\right)}^{\frac{3}{2}} \cdot \sqrt{\left|\frac{z}{t}\right|}double f(double x, double y, double z, double t) {
double r662158 = x;
double r662159 = r662158 * r662158;
double r662160 = y;
double r662161 = r662160 * r662160;
double r662162 = r662159 / r662161;
double r662163 = z;
double r662164 = r662163 * r662163;
double r662165 = t;
double r662166 = r662165 * r662165;
double r662167 = r662164 / r662166;
double r662168 = r662162 + r662167;
return r662168;
}
double f(double x, double y, double z, double t) {
double r662169 = x;
double r662170 = y;
double r662171 = r662169 / r662170;
double r662172 = r662171 * r662171;
double r662173 = z;
double r662174 = t;
double r662175 = r662173 / r662174;
double r662176 = fabs(r662175);
double r662177 = 1.5;
double r662178 = pow(r662176, r662177);
double r662179 = sqrt(r662176);
double r662180 = r662178 * r662179;
double r662181 = r662172 + r662180;
return r662181;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 34.0 |
|---|---|
| Target | 0.4 |
| Herbie | 0.5 |
Initial program 34.0
rmApplied times-frac19.3
rmApplied add-sqr-sqrt19.4
Simplified19.3
Simplified0.4
rmApplied add-sqr-sqrt0.5
Applied associate-*r*0.5
Simplified0.6
rmApplied pow1/20.6
Applied pow-pow0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020081
(FPCore (x y z t)
:name "Graphics.Rasterific.Svg.PathConverter:arcToSegments from rasterific-svg-0.2.3.1"
:precision binary64
:herbie-target
(+ (pow (/ x y) 2) (pow (/ z t) 2))
(+ (/ (* x x) (* y y)) (/ (* z z) (* t t))))