\frac{x \cdot x}{y \cdot y} + \frac{z \cdot z}{t \cdot t}{\left(\left|\frac{x}{y}\right|\right)}^{\frac{3}{2}} \cdot \sqrt{\left|\frac{x}{y}\right|} + \frac{z}{t} \cdot \frac{z}{t}double f(double x, double y, double z, double t) {
double r449433 = x;
double r449434 = r449433 * r449433;
double r449435 = y;
double r449436 = r449435 * r449435;
double r449437 = r449434 / r449436;
double r449438 = z;
double r449439 = r449438 * r449438;
double r449440 = t;
double r449441 = r449440 * r449440;
double r449442 = r449439 / r449441;
double r449443 = r449437 + r449442;
return r449443;
}
double f(double x, double y, double z, double t) {
double r449444 = x;
double r449445 = y;
double r449446 = r449444 / r449445;
double r449447 = fabs(r449446);
double r449448 = 1.5;
double r449449 = pow(r449447, r449448);
double r449450 = sqrt(r449447);
double r449451 = r449449 * r449450;
double r449452 = z;
double r449453 = t;
double r449454 = r449452 / r449453;
double r449455 = r449454 * r449454;
double r449456 = r449451 + r449455;
return r449456;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 33.4 |
|---|---|
| Target | 0.4 |
| Herbie | 0.5 |
Initial program 33.4
rmApplied add-sqr-sqrt33.4
Simplified33.4
Simplified19.0
rmApplied times-frac0.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 2019208
(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))))