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

Error

Bits error versus fnmm

Bits error versus fnpm

Bits error versus fnpn

Bits error versus d0

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 32.1

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

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

Reproduce

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