Average Error: 31.2 → 31.2
Time: 2.7s
Precision: binary64
\[\tan \left(\tan^{-1} \left(\frac{y - x}{1 + x \cdot y}\right) + z\right)\]
\[\tan \left(\tan^{-1} \left(\frac{y - x}{1 + x \cdot y}\right) + z\right)\]
\tan \left(\tan^{-1} \left(\frac{y - x}{1 + x \cdot y}\right) + z\right)
\tan \left(\tan^{-1} \left(\frac{y - x}{1 + x \cdot y}\right) + z\right)
double code(double y, double x, double z) {
	return ((double) tan(((double) (((double) atan(((double) (((double) (y - x)) / ((double) (1.0 + ((double) (x * y)))))))) + z))));
}
double code(double y, double x, double z) {
	return ((double) tan(((double) (((double) atan(((double) (((double) (y - x)) / ((double) (1.0 + ((double) (x * y)))))))) + z))));
}

Error

Bits error versus y

Bits error versus x

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.2

    \[\tan \left(\tan^{-1} \left(\frac{y - x}{1 + x \cdot y}\right) + z\right)\]
  2. Final simplification31.2

    \[\leadsto \tan \left(\tan^{-1} \left(\frac{y - x}{1 + x \cdot y}\right) + z\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (y x z)
  :name "(tan (+ (atan (/ (- y x) (+ 1 (* x y)))) z))"
  :precision binary64
  (tan (+ (atan (/ (- y x) (+ 1.0 (* x y)))) z)))