Average Error: 31.7 → 31.7
Time: 640.0ms
Precision: binary64
\[\sqrt{a \cdot a + \varepsilon \cdot \varepsilon}\]
\[\sqrt{a \cdot a + \varepsilon \cdot \varepsilon}\]
\sqrt{a \cdot a + \varepsilon \cdot \varepsilon}
\sqrt{a \cdot a + \varepsilon \cdot \varepsilon}
double code(double a, double eps) {
	return ((double) sqrt(((double) (((double) (a * a)) + ((double) (eps * eps))))));
}
double code(double a, double eps) {
	return ((double) sqrt(((double) (((double) (a * a)) + ((double) (eps * eps))))));
}

Error

Bits error versus a

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.7

    \[\sqrt{a \cdot a + \varepsilon \cdot \varepsilon}\]
  2. Final simplification31.7

    \[\leadsto \sqrt{a \cdot a + \varepsilon \cdot \varepsilon}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a eps)
  :name "(sqrt (+ (* a a) (* eps eps)))"
  :precision binary64
  (sqrt (+ (* a a) (* eps eps))))