Average Error: 13.2 → 14.0
Time: 13.3s
Precision: 64
\[1.00000000000000001 \cdot 10^{-150} \lt \left|x\right| \lt 9.99999999999999981 \cdot 10^{149}\]
\[\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}\]
\[\sqrt{0.5 \cdot \left(1 + \left(x \cdot \sqrt{\frac{1}{\sqrt{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}} \cdot \sqrt{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}\]
\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}
\sqrt{0.5 \cdot \left(1 + \left(x \cdot \sqrt{\frac{1}{\sqrt{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}} \cdot \sqrt{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}
double f(double p, double x) {
        double r237505 = 0.5;
        double r237506 = 1.0;
        double r237507 = x;
        double r237508 = 4.0;
        double r237509 = p;
        double r237510 = r237508 * r237509;
        double r237511 = r237510 * r237509;
        double r237512 = r237507 * r237507;
        double r237513 = r237511 + r237512;
        double r237514 = sqrt(r237513);
        double r237515 = r237507 / r237514;
        double r237516 = r237506 + r237515;
        double r237517 = r237505 * r237516;
        double r237518 = sqrt(r237517);
        return r237518;
}

double f(double p, double x) {
        double r237519 = 0.5;
        double r237520 = 1.0;
        double r237521 = x;
        double r237522 = 1.0;
        double r237523 = 4.0;
        double r237524 = p;
        double r237525 = r237523 * r237524;
        double r237526 = r237525 * r237524;
        double r237527 = r237521 * r237521;
        double r237528 = r237526 + r237527;
        double r237529 = sqrt(r237528);
        double r237530 = sqrt(r237529);
        double r237531 = r237530 * r237530;
        double r237532 = r237522 / r237531;
        double r237533 = sqrt(r237532);
        double r237534 = r237521 * r237533;
        double r237535 = r237522 / r237529;
        double r237536 = sqrt(r237535);
        double r237537 = r237534 * r237536;
        double r237538 = r237520 + r237537;
        double r237539 = r237519 * r237538;
        double r237540 = sqrt(r237539);
        return r237540;
}

Error

Bits error versus p

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original13.2
Target13.2
Herbie14.0
\[\sqrt{0.5 + \frac{\mathsf{copysign}\left(0.5, x\right)}{\mathsf{hypot}\left(1, \frac{2 \cdot p}{x}\right)}}\]

Derivation

  1. Initial program 13.2

    \[\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}\]
  2. Using strategy rm
  3. Applied div-inv13.4

    \[\leadsto \sqrt{0.5 \cdot \left(1 + \color{blue}{x \cdot \frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt14.1

    \[\leadsto \sqrt{0.5 \cdot \left(1 + x \cdot \color{blue}{\left(\sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}} \cdot \sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}\right)}\]
  6. Applied associate-*r*14.1

    \[\leadsto \sqrt{0.5 \cdot \left(1 + \color{blue}{\left(x \cdot \sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}}\right)}\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt14.1

    \[\leadsto \sqrt{0.5 \cdot \left(1 + \left(x \cdot \sqrt{\frac{1}{\sqrt{\color{blue}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x} \cdot \sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}\]
  9. Applied sqrt-prod14.0

    \[\leadsto \sqrt{0.5 \cdot \left(1 + \left(x \cdot \sqrt{\frac{1}{\color{blue}{\sqrt{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}} \cdot \sqrt{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}\]
  10. Final simplification14.0

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

Reproduce

herbie shell --seed 2020043 
(FPCore (p x)
  :name "Given's Rotation SVD example"
  :precision binary64
  :pre (< 1e-150 (fabs x) 1e+150)

  :herbie-target
  (sqrt (+ 0.5 (/ (copysign 0.5 x) (hypot 1 (/ (* 2 p) x)))))

  (sqrt (* 0.5 (+ 1 (/ x (sqrt (+ (* (* 4 p) p) (* x x))))))))