Average Error: 13.0 → 15.0
Time: 15.5s
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)}\]
\[\begin{array}{l} \mathbf{if}\;x \le -1.0089186447096822 \cdot 10^{+19}:\\ \;\;\;\;\sqrt{\frac{e^{\log \left(\frac{-1}{x}\right)} \cdot e^{\log \left(\frac{-1}{x}\right)}}{\frac{\frac{-1}{p} \cdot \frac{-1}{p}}{1.0}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{{e}^{\left(\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)\right)}}\\ \end{array}\]
\sqrt{0.5 \cdot \left(1 + \frac{x}{\sqrt{\left(4 \cdot p\right) \cdot p + x \cdot x}}\right)}
\begin{array}{l}
\mathbf{if}\;x \le -1.0089186447096822 \cdot 10^{+19}:\\
\;\;\;\;\sqrt{\frac{e^{\log \left(\frac{-1}{x}\right)} \cdot e^{\log \left(\frac{-1}{x}\right)}}{\frac{\frac{-1}{p} \cdot \frac{-1}{p}}{1.0}}}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{{e}^{\left(\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)\right)}}\\

\end{array}
double f(double p, double x) {
        double r10732955 = 0.5;
        double r10732956 = 1.0;
        double r10732957 = x;
        double r10732958 = 4.0;
        double r10732959 = p;
        double r10732960 = r10732958 * r10732959;
        double r10732961 = r10732960 * r10732959;
        double r10732962 = r10732957 * r10732957;
        double r10732963 = r10732961 + r10732962;
        double r10732964 = sqrt(r10732963);
        double r10732965 = r10732957 / r10732964;
        double r10732966 = r10732956 + r10732965;
        double r10732967 = r10732955 * r10732966;
        double r10732968 = sqrt(r10732967);
        return r10732968;
}

double f(double p, double x) {
        double r10732969 = x;
        double r10732970 = -1.0089186447096822e+19;
        bool r10732971 = r10732969 <= r10732970;
        double r10732972 = -1.0;
        double r10732973 = r10732972 / r10732969;
        double r10732974 = log(r10732973);
        double r10732975 = exp(r10732974);
        double r10732976 = r10732975 * r10732975;
        double r10732977 = p;
        double r10732978 = r10732972 / r10732977;
        double r10732979 = r10732978 * r10732978;
        double r10732980 = 1.0;
        double r10732981 = r10732979 / r10732980;
        double r10732982 = r10732976 / r10732981;
        double r10732983 = sqrt(r10732982);
        double r10732984 = exp(1.0);
        double r10732985 = 0.5;
        double r10732986 = r10732969 * r10732969;
        double r10732987 = r10732977 * r10732977;
        double r10732988 = 4.0;
        double r10732989 = r10732987 * r10732988;
        double r10732990 = r10732986 + r10732989;
        double r10732991 = sqrt(r10732990);
        double r10732992 = r10732969 / r10732991;
        double r10732993 = r10732985 * r10732992;
        double r10732994 = r10732993 + r10732985;
        double r10732995 = log(r10732994);
        double r10732996 = pow(r10732984, r10732995);
        double r10732997 = sqrt(r10732996);
        double r10732998 = r10732971 ? r10732983 : r10732997;
        return r10732998;
}

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
Herbie15.0
\[\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. Split input into 2 regimes
  2. if x < -1.0089186447096822e+19

    1. Initial program 28.8

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

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

      \[\leadsto \sqrt{\color{blue}{e^{\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)}}}\]
    5. Using strategy rm
    6. Applied pow128.8

      \[\leadsto \sqrt{e^{\log \color{blue}{\left({\left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)}^{1}\right)}}}\]
    7. Applied log-pow28.8

      \[\leadsto \sqrt{e^{\color{blue}{1 \cdot \log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)}}}\]
    8. Applied exp-prod28.8

      \[\leadsto \sqrt{\color{blue}{{\left(e^{1}\right)}^{\left(\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)\right)}}}\]
    9. Simplified28.8

      \[\leadsto \sqrt{{\color{blue}{e}}^{\left(\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)\right)}}\]
    10. Taylor expanded around -inf 50.1

      \[\leadsto \sqrt{\color{blue}{e^{\left(\log 1.0 + 2 \cdot \log \left(\frac{-1}{x}\right)\right) - 2 \cdot \log \left(\frac{-1}{p}\right)}}}\]
    11. Simplified38.2

      \[\leadsto \sqrt{\color{blue}{\frac{e^{\log \left(\frac{-1}{x}\right)} \cdot e^{\log \left(\frac{-1}{x}\right)}}{\frac{\frac{-1}{p} \cdot \frac{-1}{p}}{1.0}}}}\]

    if -1.0089186447096822e+19 < x

    1. Initial program 8.6

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

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

      \[\leadsto \sqrt{\color{blue}{e^{\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)}}}\]
    5. Using strategy rm
    6. Applied pow18.6

      \[\leadsto \sqrt{e^{\log \color{blue}{\left({\left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)}^{1}\right)}}}\]
    7. Applied log-pow8.6

      \[\leadsto \sqrt{e^{\color{blue}{1 \cdot \log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)}}}\]
    8. Applied exp-prod8.6

      \[\leadsto \sqrt{\color{blue}{{\left(e^{1}\right)}^{\left(\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)\right)}}}\]
    9. Simplified8.6

      \[\leadsto \sqrt{{\color{blue}{e}}^{\left(\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification15.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.0089186447096822 \cdot 10^{+19}:\\ \;\;\;\;\sqrt{\frac{e^{\log \left(\frac{-1}{x}\right)} \cdot e^{\log \left(\frac{-1}{x}\right)}}{\frac{\frac{-1}{p} \cdot \frac{-1}{p}}{1.0}}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{{e}^{\left(\log \left(0.5 \cdot \frac{x}{\sqrt{x \cdot x + \left(p \cdot p\right) \cdot 4}} + 0.5\right)\right)}}\\ \end{array}\]

Reproduce

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