Average Error: 13.4 → 13.5
Time: 13.9s
Precision: 64
\[1.000000000000000006295358232172963997211 \cdot 10^{-150} \lt \left|x\right| \lt 9.999999999999999808355961724373745905731 \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 \frac{\frac{x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} \cdot \frac{\frac{x \cdot x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}}}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} + \left(1 \cdot 1\right) \cdot 1}{\frac{x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} \cdot \left(\frac{x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} - 1\right) + 1 \cdot 1}}\]
\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}
\sqrt{0.5 \cdot \frac{\frac{x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} \cdot \frac{\frac{x \cdot x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}}}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} + \left(1 \cdot 1\right) \cdot 1}{\frac{x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} \cdot \left(\frac{x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} - 1\right) + 1 \cdot 1}}
double f(double p, double x) {
        double r10375565 = 0.5;
        double r10375566 = 1.0;
        double r10375567 = x;
        double r10375568 = 4.0;
        double r10375569 = p;
        double r10375570 = r10375568 * r10375569;
        double r10375571 = r10375570 * r10375569;
        double r10375572 = r10375567 * r10375567;
        double r10375573 = r10375571 + r10375572;
        double r10375574 = sqrt(r10375573);
        double r10375575 = r10375567 / r10375574;
        double r10375576 = r10375566 + r10375575;
        double r10375577 = r10375565 * r10375576;
        double r10375578 = sqrt(r10375577);
        return r10375578;
}

double f(double p, double x) {
        double r10375579 = 0.5;
        double r10375580 = x;
        double r10375581 = r10375580 * r10375580;
        double r10375582 = p;
        double r10375583 = 4.0;
        double r10375584 = r10375583 * r10375582;
        double r10375585 = r10375582 * r10375584;
        double r10375586 = r10375581 + r10375585;
        double r10375587 = sqrt(r10375586);
        double r10375588 = r10375580 / r10375587;
        double r10375589 = r10375581 / r10375587;
        double r10375590 = r10375589 / r10375587;
        double r10375591 = r10375588 * r10375590;
        double r10375592 = 1.0;
        double r10375593 = r10375592 * r10375592;
        double r10375594 = r10375593 * r10375592;
        double r10375595 = r10375591 + r10375594;
        double r10375596 = r10375588 - r10375592;
        double r10375597 = r10375588 * r10375596;
        double r10375598 = r10375597 + r10375593;
        double r10375599 = r10375595 / r10375598;
        double r10375600 = r10375579 * r10375599;
        double r10375601 = sqrt(r10375600);
        return r10375601;
}

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.4
Target13.4
Herbie13.5
\[\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.4

    \[\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 flip3-+13.4

    \[\leadsto \sqrt{0.5 \cdot \color{blue}{\frac{{1}^{3} + {\left(\frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}^{3}}{1 \cdot 1 + \left(\frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}} \cdot \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}} - 1 \cdot \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}}}\]
  4. Simplified13.4

    \[\leadsto \sqrt{0.5 \cdot \frac{\color{blue}{1 \cdot \left(1 \cdot 1\right) + \frac{x}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}} \cdot \frac{x \cdot x}{x \cdot x + p \cdot \left(4 \cdot p\right)}}}{1 \cdot 1 + \left(\frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}} \cdot \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}} - 1 \cdot \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}}\]
  5. Simplified13.4

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

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

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

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

Reproduce

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

  :herbie-target
  (sqrt (+ 0.5 (/ (copysign 0.5 x) (hypot 1.0 (/ (* 2.0 p) x)))))

  (sqrt (* 0.5 (+ 1.0 (/ x (sqrt (+ (* (* 4.0 p) p) (* x x))))))))