Average Error: 13.2 → 0.3
Time: 2.1m
Precision: 64
\[\left(x = 0 \lor 0.5884142 \le x \le 505.5909\right) \land \left(-1.796658 \cdot 10^{+308} \le y \le -9.425585 \cdot 10^{-310} \lor 1.284938 \cdot 10^{-309} \le y \le 1.751224 \cdot 10^{+308}\right) \land \left(-1.776707 \cdot 10^{+308} \le z \le -8.599796 \cdot 10^{-310} \lor 3.293145 \cdot 10^{-311} \le z \le 1.725154 \cdot 10^{+308}\right) \land \left(-1.796658 \cdot 10^{+308} \le a \le -9.425585 \cdot 10^{-310} \lor 1.284938 \cdot 10^{-309} \le a \le 1.751224 \cdot 10^{+308}\right)\]
\[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)} + x\]
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)} + x
double 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;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 13.2

    \[x + \left(\tan \left(y + z\right) - \tan a\right)\]
  2. Using strategy rm
  3. Applied tan-quot13.2

    \[\leadsto x + \left(\tan \left(y + z\right) - \color{blue}{\frac{\sin a}{\cos a}}\right)\]
  4. Applied +-commutative13.2

    \[\leadsto x + \left(\tan \color{blue}{\left(z + y\right)} - \frac{\sin a}{\cos a}\right)\]
  5. Applied tan-sum0.2

    \[\leadsto x + \left(\color{blue}{\frac{\tan z + \tan y}{1 - \tan z \cdot \tan y}} - \frac{\sin a}{\cos a}\right)\]
  6. Applied frac-sub0.2

    \[\leadsto x + \color{blue}{\frac{\left(\tan z + \tan y\right) \cdot \cos a - \left(1 - \tan z \cdot \tan y\right) \cdot \sin a}{\left(1 - \tan z \cdot \tan y\right) \cdot \cos a}}\]
  7. Using strategy rm
  8. Applied add-cbrt-cube0.2

    \[\leadsto x + \frac{\left(\tan z + \tan y\right) \cdot \cos a - \left(1 - \tan z \cdot \tan y\right) \cdot \sin a}{\left(1 - \color{blue}{\sqrt[3]{\left(\left(\tan z \cdot \tan y\right) \cdot \left(\tan z \cdot \tan y\right)\right) \cdot \left(\tan z \cdot \tan y\right)}}\right) \cdot \cos a}\]
  9. Using strategy rm
  10. Applied flip--0.3

    \[\leadsto x + \frac{\color{blue}{\frac{\left(\left(\tan z + \tan y\right) \cdot \cos a\right) \cdot \left(\left(\tan z + \tan y\right) \cdot \cos a\right) - \left(\left(1 - \tan z \cdot \tan y\right) \cdot \sin a\right) \cdot \left(\left(1 - \tan z \cdot \tan y\right) \cdot \sin a\right)}{\left(\tan z + \tan y\right) \cdot \cos a + \left(1 - \tan z \cdot \tan y\right) \cdot \sin a}}}{\left(1 - \sqrt[3]{\left(\left(\tan z \cdot \tan y\right) \cdot \left(\tan z \cdot \tan y\right)\right) \cdot \left(\tan z \cdot \tan y\right)}\right) \cdot \cos a}\]
  11. Applied associate-/l/0.3

    \[\leadsto x + \color{blue}{\frac{\left(\left(\tan z + \tan y\right) \cdot \cos a\right) \cdot \left(\left(\tan z + \tan y\right) \cdot \cos a\right) - \left(\left(1 - \tan z \cdot \tan y\right) \cdot \sin a\right) \cdot \left(\left(1 - \tan z \cdot \tan y\right) \cdot \sin a\right)}{\left(\left(1 - \sqrt[3]{\left(\left(\tan z \cdot \tan y\right) \cdot \left(\tan z \cdot \tan y\right)\right) \cdot \left(\tan z \cdot \tan y\right)}\right) \cdot \cos a\right) \cdot \left(\left(\tan z + \tan y\right) \cdot \cos a + \left(1 - \tan z \cdot \tan y\right) \cdot \sin a\right)}}\]
  12. Final simplification0.3

    \[\leadsto \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)} + x\]

Reproduce

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