Average Error: 13.1 → 15.0
Time: 12.1s
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 \left(1 + \frac{\sqrt[3]{x}}{\frac{\left|\sqrt[3]{\left(4 \cdot p\right) \cdot p + x \cdot x}\right|}{\sqrt[3]{x}}} \cdot \frac{\sqrt[3]{x}}{\sqrt{\sqrt[3]{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\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 \left(1 + \frac{\sqrt[3]{x}}{\frac{\left|\sqrt[3]{\left(4 \cdot p\right) \cdot p + x \cdot x}\right|}{\sqrt[3]{x}}} \cdot \frac{\sqrt[3]{x}}{\sqrt{\sqrt[3]{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}
double f(double p, double x) {
        double r149699 = 0.5;
        double r149700 = 1.0;
        double r149701 = x;
        double r149702 = 4.0;
        double r149703 = p;
        double r149704 = r149702 * r149703;
        double r149705 = r149704 * r149703;
        double r149706 = r149701 * r149701;
        double r149707 = r149705 + r149706;
        double r149708 = sqrt(r149707);
        double r149709 = r149701 / r149708;
        double r149710 = r149700 + r149709;
        double r149711 = r149699 * r149710;
        double r149712 = sqrt(r149711);
        return r149712;
}

double f(double p, double x) {
        double r149713 = 0.5;
        double r149714 = 1.0;
        double r149715 = x;
        double r149716 = cbrt(r149715);
        double r149717 = 4.0;
        double r149718 = p;
        double r149719 = r149717 * r149718;
        double r149720 = r149719 * r149718;
        double r149721 = r149715 * r149715;
        double r149722 = r149720 + r149721;
        double r149723 = cbrt(r149722);
        double r149724 = fabs(r149723);
        double r149725 = r149724 / r149716;
        double r149726 = r149716 / r149725;
        double r149727 = sqrt(r149723);
        double r149728 = r149716 / r149727;
        double r149729 = r149726 * r149728;
        double r149730 = r149714 + r149729;
        double r149731 = r149713 * r149730;
        double r149732 = sqrt(r149731);
        return r149732;
}

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
Herbie15.0
\[\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.8

    \[\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.9

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

    \[\leadsto \sqrt{0.5 \cdot \left(1 + \frac{\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{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}} \cdot \sqrt{\sqrt[3]{\left(4 \cdot p\right) \cdot p + x \cdot x}}}\right)}\]
  6. Applied times-frac15.0

    \[\leadsto \sqrt{0.5 \cdot \left(1 + \color{blue}{\frac{\sqrt[3]{x} \cdot \sqrt[3]{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}}} \cdot \frac{\sqrt[3]{x}}{\sqrt{\sqrt[3]{\left(4 \cdot p\right) \cdot p + x \cdot x}}}}\right)}\]
  7. Simplified15.0

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

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

Reproduce

herbie shell --seed 2019294 
(FPCore (p x)
  :name "Given's Rotation SVD example"
  :precision binary64
  :pre (< 1.00000000000000001e-150 (fabs x) 9.99999999999999981e149)

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

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