Average Error: 0.2 → 0.2
Time: 682.0ms
Precision: binary64
\[\frac{1}{\frac{1}{\left|x1\right|} + \frac{1}{\left|x2\right|}}\]
\[\frac{1}{\frac{1}{\left|x1\right|} + \frac{1}{\left|x2\right|}}\]
\frac{1}{\frac{1}{\left|x1\right|} + \frac{1}{\left|x2\right|}}
\frac{1}{\frac{1}{\left|x1\right|} + \frac{1}{\left|x2\right|}}
double code(double x1, double x2) {
	return ((double) (1.0 / ((double) (((double) (1.0 / ((double) fabs(x1)))) + ((double) (1.0 / ((double) fabs(x2))))))));
}
double code(double x1, double x2) {
	return ((double) (1.0 / ((double) (((double) (1.0 / ((double) fabs(x1)))) + ((double) (1.0 / ((double) fabs(x2))))))));
}

Error

Bits error versus x1

Bits error versus x2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\frac{1}{\frac{1}{\left|x1\right|} + \frac{1}{\left|x2\right|}}\]
  2. Final simplification0.2

    \[\leadsto \frac{1}{\frac{1}{\left|x1\right|} + \frac{1}{\left|x2\right|}}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x1 x2)
  :name "(/ 1 (+ (/ 1 (fabs x1)) (/ 1 (fabs x2))))"
  :precision binary64
  (/ 1.0 (+ (/ 1.0 (fabs x1)) (/ 1.0 (fabs x2)))))