Average Error: 29.9 → 29.9
Time: 2.0s
Precision: binary64
\[\sqrt{0.5 \cdot \left(1 + \frac{q - r}{\sqrt{\left(4 \cdot p\right) \cdot p + \left(q - r\right) \cdot \left(q - r\right)}}\right)}\]
\[\sqrt{0.5 \cdot \left(1 + \frac{q - r}{\sqrt{\left(4 \cdot p\right) \cdot p + \left(q - r\right) \cdot \left(q - r\right)}}\right)}\]
\sqrt{0.5 \cdot \left(1 + \frac{q - r}{\sqrt{\left(4 \cdot p\right) \cdot p + \left(q - r\right) \cdot \left(q - r\right)}}\right)}
\sqrt{0.5 \cdot \left(1 + \frac{q - r}{\sqrt{\left(4 \cdot p\right) \cdot p + \left(q - r\right) \cdot \left(q - r\right)}}\right)}
double code(double q, double r, double p) {
	return ((double) sqrt(((double) (0.5 * ((double) (1.0 + ((double) (((double) (q - r)) / ((double) sqrt(((double) (((double) (((double) (4.0 * p)) * p)) + ((double) (((double) (q - r)) * ((double) (q - r))))))))))))))));
}
double code(double q, double r, double p) {
	return ((double) sqrt(((double) (0.5 * ((double) (1.0 + ((double) (((double) (q - r)) / ((double) sqrt(((double) (((double) (((double) (4.0 * p)) * p)) + ((double) (((double) (q - r)) * ((double) (q - r))))))))))))))));
}

Error

Bits error versus q

Bits error versus r

Bits error versus p

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 29.9

    \[\sqrt{0.5 \cdot \left(1 + \frac{q - r}{\sqrt{\left(4 \cdot p\right) \cdot p + \left(q - r\right) \cdot \left(q - r\right)}}\right)}\]
  2. Final simplification29.9

    \[\leadsto \sqrt{0.5 \cdot \left(1 + \frac{q - r}{\sqrt{\left(4 \cdot p\right) \cdot p + \left(q - r\right) \cdot \left(q - r\right)}}\right)}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (q r p)
  :name "(sqrt (* 0.5 (+ 1 (/ (- q r) (sqrt (+ (* (* 4 p) p) (* (- q r) (- q r))))))))"
  :precision binary64
  (sqrt (* 0.5 (+ 1.0 (/ (- q r) (sqrt (+ (* (* 4.0 p) p) (* (- q r) (- q r)))))))))