\frac{1}{2} \cdot \left(x + y \cdot \sqrt{z}\right)\frac{1}{2} \cdot x + \left(\sqrt{\sqrt{z}} \cdot y\right) \cdot \left(\sqrt{\sqrt{z}} \cdot \frac{1}{2}\right)double f(double x, double y, double z) {
double r10604729 = 1.0;
double r10604730 = 2.0;
double r10604731 = r10604729 / r10604730;
double r10604732 = x;
double r10604733 = y;
double r10604734 = z;
double r10604735 = sqrt(r10604734);
double r10604736 = r10604733 * r10604735;
double r10604737 = r10604732 + r10604736;
double r10604738 = r10604731 * r10604737;
return r10604738;
}
double f(double x, double y, double z) {
double r10604739 = 1.0;
double r10604740 = 2.0;
double r10604741 = r10604739 / r10604740;
double r10604742 = x;
double r10604743 = r10604741 * r10604742;
double r10604744 = z;
double r10604745 = sqrt(r10604744);
double r10604746 = sqrt(r10604745);
double r10604747 = y;
double r10604748 = r10604746 * r10604747;
double r10604749 = r10604746 * r10604741;
double r10604750 = r10604748 * r10604749;
double r10604751 = r10604743 + r10604750;
return r10604751;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.1
rmApplied add-sqr-sqrt0.1
Applied sqrt-prod0.3
Applied associate-*r*0.3
rmApplied add-sqr-sqrt0.3
Applied sqrt-prod0.3
Applied sqrt-prod0.4
Applied associate-*r*0.4
rmApplied add-sqr-sqrt0.4
Applied sqrt-prod0.4
Applied sqrt-prod0.5
Applied associate-*r*0.5
Simplified0.4
rmApplied distribute-lft-in0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2019172
(FPCore (x y z)
:name "Diagrams.Solve.Polynomial:quadForm from diagrams-solve-0.1, B"
(* (/ 1.0 2.0) (+ x (* y (sqrt z)))))