\left(\left(x \cdot y + \frac{z \cdot t}{16}\right) - \frac{a \cdot b}{4}\right) + c\mathsf{fma}\left(t, \frac{z}{16}, \mathsf{fma}\left(x, y, c - 0.25 \cdot \left(b \cdot a\right)\right)\right)double f(double x, double y, double z, double t, double a, double b, double c) {
double r8045449 = x;
double r8045450 = y;
double r8045451 = r8045449 * r8045450;
double r8045452 = z;
double r8045453 = t;
double r8045454 = r8045452 * r8045453;
double r8045455 = 16.0;
double r8045456 = r8045454 / r8045455;
double r8045457 = r8045451 + r8045456;
double r8045458 = a;
double r8045459 = b;
double r8045460 = r8045458 * r8045459;
double r8045461 = 4.0;
double r8045462 = r8045460 / r8045461;
double r8045463 = r8045457 - r8045462;
double r8045464 = c;
double r8045465 = r8045463 + r8045464;
return r8045465;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r8045466 = t;
double r8045467 = z;
double r8045468 = 16.0;
double r8045469 = r8045467 / r8045468;
double r8045470 = x;
double r8045471 = y;
double r8045472 = c;
double r8045473 = 0.25;
double r8045474 = b;
double r8045475 = a;
double r8045476 = r8045474 * r8045475;
double r8045477 = r8045473 * r8045476;
double r8045478 = r8045472 - r8045477;
double r8045479 = fma(r8045470, r8045471, r8045478);
double r8045480 = fma(r8045466, r8045469, r8045479);
return r8045480;
}



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
Initial program 0.2
Simplified0.1
Taylor expanded around 0 0.0
Final simplification0.0
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y z t a b c)
:name "Diagrams.Solve.Polynomial:quartForm from diagrams-solve-0.1, C"
(+ (- (+ (* x y) (/ (* z t) 16.0)) (/ (* a b) 4.0)) c))