Average Error: 13.0 → 13.3
Time: 18.4s
Precision: 64
\[10^{-150} \lt \left|x\right| \lt 10^{+150}\]
\[\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}\]
\[\sqrt{e^{\log \left({\left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right)}^{3} + {0.5}^{3}\right) - \log \left(\left(0.5 \cdot 0.5 - \left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right) \cdot 0.5\right) + \left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right) \cdot \left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right)\right)}}\]
\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}
\sqrt{e^{\log \left({\left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right)}^{3} + {0.5}^{3}\right) - \log \left(\left(0.5 \cdot 0.5 - \left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right) \cdot 0.5\right) + \left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right) \cdot \left(\left({\left(x \cdot x + p \cdot \left(p \cdot 4\right)\right)}^{\left(-\frac{1}{2}\right)} \cdot x\right) \cdot 0.5\right)\right)}}
double f(double p, double x) {
        double r9068213 = 0.5;
        double r9068214 = 1.0;
        double r9068215 = x;
        double r9068216 = 4.0;
        double r9068217 = p;
        double r9068218 = r9068216 * r9068217;
        double r9068219 = r9068218 * r9068217;
        double r9068220 = r9068215 * r9068215;
        double r9068221 = r9068219 + r9068220;
        double r9068222 = sqrt(r9068221);
        double r9068223 = r9068215 / r9068222;
        double r9068224 = r9068214 + r9068223;
        double r9068225 = r9068213 * r9068224;
        double r9068226 = sqrt(r9068225);
        return r9068226;
}

double f(double p, double x) {
        double r9068227 = x;
        double r9068228 = r9068227 * r9068227;
        double r9068229 = p;
        double r9068230 = 4.0;
        double r9068231 = r9068229 * r9068230;
        double r9068232 = r9068229 * r9068231;
        double r9068233 = r9068228 + r9068232;
        double r9068234 = 0.5;
        double r9068235 = -r9068234;
        double r9068236 = pow(r9068233, r9068235);
        double r9068237 = r9068236 * r9068227;
        double r9068238 = 0.5;
        double r9068239 = r9068237 * r9068238;
        double r9068240 = 3.0;
        double r9068241 = pow(r9068239, r9068240);
        double r9068242 = pow(r9068238, r9068240);
        double r9068243 = r9068241 + r9068242;
        double r9068244 = log(r9068243);
        double r9068245 = r9068238 * r9068238;
        double r9068246 = r9068239 * r9068238;
        double r9068247 = r9068245 - r9068246;
        double r9068248 = r9068239 * r9068239;
        double r9068249 = r9068247 + r9068248;
        double r9068250 = log(r9068249);
        double r9068251 = r9068244 - r9068250;
        double r9068252 = exp(r9068251);
        double r9068253 = sqrt(r9068252);
        return r9068253;
}

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.0
Target13.0
Herbie13.3
\[\sqrt{\frac{1}{2} + \frac{\mathsf{copysign}\left(\frac{1}{2}, x\right)}{\mathsf{hypot}\left(1, \frac{2 \cdot p}{x}\right)}}\]

Derivation

  1. Initial program 13.0

    \[\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}\]
  2. Simplified13.0

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

    \[\leadsto \sqrt{0.5 \cdot \color{blue}{\left(x \cdot \frac{1}{\sqrt{x \cdot x + p \cdot \left(4 \cdot p\right)}}\right)} + 0.5}\]
  5. Using strategy rm
  6. Applied pow1/213.3

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

    \[\leadsto \sqrt{0.5 \cdot \left(x \cdot \color{blue}{{\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}}\right) + 0.5}\]
  8. Using strategy rm
  9. Applied add-exp-log13.3

    \[\leadsto \sqrt{\color{blue}{e^{\log \left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right) + 0.5\right)}}}\]
  10. Using strategy rm
  11. Applied flip3-+13.3

    \[\leadsto \sqrt{e^{\log \color{blue}{\left(\frac{{\left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right)}^{3} + {0.5}^{3}}{\left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right) \cdot \left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right) + \left(0.5 \cdot 0.5 - \left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right) \cdot 0.5\right)}\right)}}}\]
  12. Applied log-div13.3

    \[\leadsto \sqrt{e^{\color{blue}{\log \left({\left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right)}^{3} + {0.5}^{3}\right) - \log \left(\left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right) \cdot \left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right) + \left(0.5 \cdot 0.5 - \left(0.5 \cdot \left(x \cdot {\left(x \cdot x + p \cdot \left(4 \cdot p\right)\right)}^{\left(-\frac{1}{2}\right)}\right)\right) \cdot 0.5\right)\right)}}}\]
  13. Final simplification13.3

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

Reproduce

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

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

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