Average Error: 13.2 → 13.2
Time: 13.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{\frac{x}{\frac{\sqrt{x \cdot x + \left(p \cdot 4\right) \cdot p}}{0.5}} + 0.5}\]
\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}
\sqrt{\frac{x}{\frac{\sqrt{x \cdot x + \left(p \cdot 4\right) \cdot p}}{0.5}} + 0.5}
double f(double p, double x) {
        double r3388948 = 0.5;
        double r3388949 = 1.0;
        double r3388950 = x;
        double r3388951 = 4.0;
        double r3388952 = p;
        double r3388953 = r3388951 * r3388952;
        double r3388954 = r3388953 * r3388952;
        double r3388955 = r3388950 * r3388950;
        double r3388956 = r3388954 + r3388955;
        double r3388957 = sqrt(r3388956);
        double r3388958 = r3388950 / r3388957;
        double r3388959 = r3388949 + r3388958;
        double r3388960 = r3388948 * r3388959;
        double r3388961 = sqrt(r3388960);
        return r3388961;
}

double f(double p, double x) {
        double r3388962 = x;
        double r3388963 = r3388962 * r3388962;
        double r3388964 = p;
        double r3388965 = 4.0;
        double r3388966 = r3388964 * r3388965;
        double r3388967 = r3388966 * r3388964;
        double r3388968 = r3388963 + r3388967;
        double r3388969 = sqrt(r3388968);
        double r3388970 = 0.5;
        double r3388971 = r3388969 / r3388970;
        double r3388972 = r3388962 / r3388971;
        double r3388973 = r3388972 + r3388970;
        double r3388974 = sqrt(r3388973);
        return r3388974;
}

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
Herbie13.2
\[\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.2

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

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

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

Reproduce

herbie shell --seed 2019153 
(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))))))))