\left(x + y\right) \cdot \left(1 - z\right)
\begin{array}{l}
\mathbf{if}\;z \le -1324274292343200.25 \lor \neg \left(z \le 511536835406.96807861328125\right):\\
\;\;\;\;\mathsf{fma}\left(1, y, -\mathsf{fma}\left(x, z, z \cdot y\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(x + y\right) \cdot \left({1}^{3} - {z}^{3}\right)}{\sqrt{1 \cdot 1 + \left(z \cdot z + 1 \cdot z\right)}}}{\sqrt{1 \cdot 1 + \left(z \cdot z + 1 \cdot z\right)}}\\
\end{array}double f(double x, double y, double z) {
double r27961 = x;
double r27962 = y;
double r27963 = r27961 + r27962;
double r27964 = 1.0;
double r27965 = z;
double r27966 = r27964 - r27965;
double r27967 = r27963 * r27966;
return r27967;
}
double f(double x, double y, double z) {
double r27968 = z;
double r27969 = -1324274292343200.2;
bool r27970 = r27968 <= r27969;
double r27971 = 511536835406.9681;
bool r27972 = r27968 <= r27971;
double r27973 = !r27972;
bool r27974 = r27970 || r27973;
double r27975 = 1.0;
double r27976 = y;
double r27977 = x;
double r27978 = r27968 * r27976;
double r27979 = fma(r27977, r27968, r27978);
double r27980 = -r27979;
double r27981 = fma(r27975, r27976, r27980);
double r27982 = r27977 + r27976;
double r27983 = 3.0;
double r27984 = pow(r27975, r27983);
double r27985 = pow(r27968, r27983);
double r27986 = r27984 - r27985;
double r27987 = r27982 * r27986;
double r27988 = r27975 * r27975;
double r27989 = r27968 * r27968;
double r27990 = r27975 * r27968;
double r27991 = r27989 + r27990;
double r27992 = r27988 + r27991;
double r27993 = sqrt(r27992);
double r27994 = r27987 / r27993;
double r27995 = r27994 / r27993;
double r27996 = r27974 ? r27981 : r27995;
return r27996;
}



Bits error versus x



Bits error versus y



Bits error versus z
if z < -1324274292343200.2 or 511536835406.9681 < z Initial program 0.0
Taylor expanded around inf 0.1
Simplified0.1
if -1324274292343200.2 < z < 511536835406.9681Initial program 0.0
rmApplied flip3--0.0
Applied associate-*r/0.1
rmApplied add-sqr-sqrt0.1
Applied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019353 +o rules:numerics
(FPCore (x y z)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, H"
:precision binary64
(* (+ x y) (- 1 z)))