Average Error: 29.1 → 29.1
Time: 1.5s
Precision: binary64
\[\sqrt{\frac{fnmm \cdot fnpm}{fnpn \cdot \left(fnpn + 2\right)}}\]
\[\sqrt{\frac{fnmm \cdot fnpm}{fnpn \cdot \left(fnpn + 2\right)}}\]
\sqrt{\frac{fnmm \cdot fnpm}{fnpn \cdot \left(fnpn + 2\right)}}
\sqrt{\frac{fnmm \cdot fnpm}{fnpn \cdot \left(fnpn + 2\right)}}
double code(double fnmm, double fnpm, double fnpn) {
	return ((double) sqrt(((double) (((double) (fnmm * fnpm)) / ((double) (fnpn * ((double) (fnpn + 2.0))))))));
}
double code(double fnmm, double fnpm, double fnpn) {
	return ((double) sqrt(((double) (((double) (fnmm * fnpm)) / ((double) (fnpn * ((double) (fnpn + 2.0))))))));
}

Error

Bits error versus fnmm

Bits error versus fnpm

Bits error versus fnpn

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 29.1

    \[\sqrt{\frac{fnmm \cdot fnpm}{fnpn \cdot \left(fnpn + 2\right)}}\]
  2. Final simplification29.1

    \[\leadsto \sqrt{\frac{fnmm \cdot fnpm}{fnpn \cdot \left(fnpn + 2\right)}}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (fnmm fnpm fnpn)
  :name "(sqrt (/ (* fnmm fnpm) (* fnpn (+ fnpn 2.0))))"
  :precision binary64
  (sqrt (/ (* fnmm fnpm) (* fnpn (+ fnpn 2.0)))))