x + \left(\tan \left(y + z\right) - \tan a\right)
\frac{\left(\cos a \cdot \left(\tan z + \tan y\right)\right) \cdot \left(\cos a \cdot \left(\tan z + \tan y\right)\right) - \left(\sin a \cdot \left(1 - \tan y \cdot \tan z\right)\right) \cdot \left(\sin a \cdot \left(1 - \tan y \cdot \tan z\right)\right)}{\left(\left(1 - \sqrt[3]{\left(\tan y \cdot \tan z\right) \cdot \left(\left(\tan y \cdot \tan z\right) \cdot \left(\tan y \cdot \tan z\right)\right)}\right) \cdot \cos a\right) \cdot \left(\cos a \cdot \left(\tan z + \tan y\right) + \sin a \cdot \left(1 - \tan y \cdot \tan z\right)\right)} + xdouble f(double x, double y, double z, double a) {
double r9964912 = x;
double r9964913 = y;
double r9964914 = z;
double r9964915 = r9964913 + r9964914;
double r9964916 = tan(r9964915);
double r9964917 = a;
double r9964918 = tan(r9964917);
double r9964919 = r9964916 - r9964918;
double r9964920 = r9964912 + r9964919;
return r9964920;
}
double f(double x, double y, double z, double a) {
double r9964921 = a;
double r9964922 = cos(r9964921);
double r9964923 = z;
double r9964924 = tan(r9964923);
double r9964925 = y;
double r9964926 = tan(r9964925);
double r9964927 = r9964924 + r9964926;
double r9964928 = r9964922 * r9964927;
double r9964929 = r9964928 * r9964928;
double r9964930 = sin(r9964921);
double r9964931 = 1.0;
double r9964932 = r9964926 * r9964924;
double r9964933 = r9964931 - r9964932;
double r9964934 = r9964930 * r9964933;
double r9964935 = r9964934 * r9964934;
double r9964936 = r9964929 - r9964935;
double r9964937 = r9964932 * r9964932;
double r9964938 = r9964932 * r9964937;
double r9964939 = cbrt(r9964938);
double r9964940 = r9964931 - r9964939;
double r9964941 = r9964940 * r9964922;
double r9964942 = r9964928 + r9964934;
double r9964943 = r9964941 * r9964942;
double r9964944 = r9964936 / r9964943;
double r9964945 = x;
double r9964946 = r9964944 + r9964945;
return r9964946;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus a
Results
Initial program 13.2
rmApplied tan-quot13.2
Applied +-commutative13.2
Applied tan-sum0.2
Applied frac-sub0.2
rmApplied add-cbrt-cube0.2
rmApplied flip--0.3
Applied associate-/l/0.3
Final simplification0.3
herbie shell --seed 2019158 +o rules:numerics
(FPCore (x y z a)
:name "(+ x (- (tan (+ y z)) (tan a)))"
:pre (and (or (== x 0) (<= 0.5884142 x 505.5909)) (or (<= -1.796658e+308 y -9.425585e-310) (<= 1.284938e-309 y 1.751224e+308)) (or (<= -1.776707e+308 z -8.599796e-310) (<= 3.293145e-311 z 1.725154e+308)) (or (<= -1.796658e+308 a -9.425585e-310) (<= 1.284938e-309 a 1.751224e+308)))
(+ x (- (tan (+ y z)) (tan a))))