\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + cdouble f(double x, double y, double z, double t, double a, double b, double c) {
double r250391 = x;
double r250392 = y;
double r250393 = r250391 * r250392;
double r250394 = z;
double r250395 = t;
double r250396 = r250394 * r250395;
double r250397 = 16.0;
double r250398 = r250396 / r250397;
double r250399 = r250393 + r250398;
double r250400 = a;
double r250401 = b;
double r250402 = r250400 * r250401;
double r250403 = 4.0;
double r250404 = r250402 / r250403;
double r250405 = r250399 - r250404;
double r250406 = c;
double r250407 = r250405 + r250406;
return r250407;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r250408 = x;
double r250409 = y;
double r250410 = r250408 * r250409;
double r250411 = z;
double r250412 = t;
double r250413 = r250411 * r250412;
double r250414 = 16.0;
double r250415 = r250413 / r250414;
double r250416 = r250410 + r250415;
double r250417 = a;
double r250418 = b;
double r250419 = r250417 * r250418;
double r250420 = 4.0;
double r250421 = r250419 / r250420;
double r250422 = r250416 - r250421;
double r250423 = c;
double r250424 = r250422 + r250423;
return r250424;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020042
(FPCore (x y z t a b c)
:name "Diagrams.Solve.Polynomial:quartForm from diagrams-solve-0.1, C"
:precision binary64
(+ (- (+ (* x y) (/ (* z t) 16)) (/ (* a b) 4)) c))