Average Error: 13.1 → 14.6
Time: 15.6s
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 \sqrt[3]{\left(\left(\frac{\frac{x}{\left|\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}\right|}}{\sqrt{\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}}} + 1\right) \cdot \left(\frac{\frac{x}{\left|\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}\right|}}{\sqrt{\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}}} + 1\right)\right) \cdot \left(\frac{\frac{x}{\left|\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}\right|}}{\sqrt{\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}}} + 1\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 \sqrt[3]{\left(\left(\frac{\frac{x}{\left|\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}\right|}}{\sqrt{\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}}} + 1\right) \cdot \left(\frac{\frac{x}{\left|\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}\right|}}{\sqrt{\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}}} + 1\right)\right) \cdot \left(\frac{\frac{x}{\left|\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}\right|}}{\sqrt{\sqrt[3]{x \cdot x + p \cdot \left(4 \cdot p\right)}}} + 1\right)}}
double f(double p, double x) {
        double r7943550 = 0.5;
        double r7943551 = 1.0;
        double r7943552 = x;
        double r7943553 = 4.0;
        double r7943554 = p;
        double r7943555 = r7943553 * r7943554;
        double r7943556 = r7943555 * r7943554;
        double r7943557 = r7943552 * r7943552;
        double r7943558 = r7943556 + r7943557;
        double r7943559 = sqrt(r7943558);
        double r7943560 = r7943552 / r7943559;
        double r7943561 = r7943551 + r7943560;
        double r7943562 = r7943550 * r7943561;
        double r7943563 = sqrt(r7943562);
        return r7943563;
}

double f(double p, double x) {
        double r7943564 = 0.5;
        double r7943565 = x;
        double r7943566 = r7943565 * r7943565;
        double r7943567 = p;
        double r7943568 = 4.0;
        double r7943569 = r7943568 * r7943567;
        double r7943570 = r7943567 * r7943569;
        double r7943571 = r7943566 + r7943570;
        double r7943572 = cbrt(r7943571);
        double r7943573 = fabs(r7943572);
        double r7943574 = r7943565 / r7943573;
        double r7943575 = sqrt(r7943572);
        double r7943576 = r7943574 / r7943575;
        double r7943577 = 1.0;
        double r7943578 = r7943576 + r7943577;
        double r7943579 = r7943578 * r7943578;
        double r7943580 = r7943579 * r7943578;
        double r7943581 = cbrt(r7943580);
        double r7943582 = r7943564 * r7943581;
        double r7943583 = sqrt(r7943582);
        return r7943583;
}

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.1
Target13.1
Herbie14.6
\[\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.1

    \[\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 add-cube-cbrt14.7

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

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

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

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

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

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

Reproduce

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