\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 r315196 = x;
double r315197 = y;
double r315198 = r315196 * r315197;
double r315199 = z;
double r315200 = t;
double r315201 = r315199 * r315200;
double r315202 = 16.0;
double r315203 = r315201 / r315202;
double r315204 = r315198 + r315203;
double r315205 = a;
double r315206 = b;
double r315207 = r315205 * r315206;
double r315208 = 4.0;
double r315209 = r315207 / r315208;
double r315210 = r315204 - r315209;
double r315211 = c;
double r315212 = r315210 + r315211;
return r315212;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r315213 = x;
double r315214 = y;
double r315215 = r315213 * r315214;
double r315216 = z;
double r315217 = t;
double r315218 = r315216 * r315217;
double r315219 = 16.0;
double r315220 = r315218 / r315219;
double r315221 = r315215 + r315220;
double r315222 = a;
double r315223 = b;
double r315224 = r315222 * r315223;
double r315225 = 4.0;
double r315226 = r315224 / r315225;
double r315227 = r315221 - r315226;
double r315228 = c;
double r315229 = r315227 + r315228;
return r315229;
}



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 2020036
(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))