Average Error: 19.3 → 10.1
Time: 1.9m
Precision: 64
\[\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\]
\[\begin{array}{l} \mathbf{if}\;x \le 7248.001864012983787688426673412322998047:\\ \;\;\;\;\frac{\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x}} - \frac{1 \cdot 1}{x + 1}}{\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}}\\ \mathbf{else}:\\ \;\;\;\;\left(0.3125 \cdot \left(\sqrt{\frac{1}{{x}^{7}}} \cdot {\left(\sqrt{1}\right)}^{2}\right) + 0.5 \cdot \left(\sqrt{\frac{1}{{x}^{3}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)\right) - 0.375 \cdot \left(\sqrt{\frac{1}{{x}^{5}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)\\ \end{array}\]
\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}
\begin{array}{l}
\mathbf{if}\;x \le 7248.001864012983787688426673412322998047:\\
\;\;\;\;\frac{\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x}} - \frac{1 \cdot 1}{x + 1}}{\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}}\\

\mathbf{else}:\\
\;\;\;\;\left(0.3125 \cdot \left(\sqrt{\frac{1}{{x}^{7}}} \cdot {\left(\sqrt{1}\right)}^{2}\right) + 0.5 \cdot \left(\sqrt{\frac{1}{{x}^{3}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)\right) - 0.375 \cdot \left(\sqrt{\frac{1}{{x}^{5}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)\\

\end{array}
double f(double x) {
        double r504782 = 1.0;
        double r504783 = x;
        double r504784 = sqrt(r504783);
        double r504785 = r504782 / r504784;
        double r504786 = r504783 + r504782;
        double r504787 = sqrt(r504786);
        double r504788 = r504782 / r504787;
        double r504789 = r504785 - r504788;
        return r504789;
}

double f(double x) {
        double r504790 = x;
        double r504791 = 7248.001864012984;
        bool r504792 = r504790 <= r504791;
        double r504793 = 1.0;
        double r504794 = sqrt(r504790);
        double r504795 = r504793 / r504794;
        double r504796 = r504795 * r504795;
        double r504797 = r504793 * r504793;
        double r504798 = r504790 + r504793;
        double r504799 = r504797 / r504798;
        double r504800 = r504796 - r504799;
        double r504801 = sqrt(r504798);
        double r504802 = r504793 / r504801;
        double r504803 = r504795 + r504802;
        double r504804 = r504800 / r504803;
        double r504805 = 0.3125;
        double r504806 = 1.0;
        double r504807 = 7.0;
        double r504808 = pow(r504790, r504807);
        double r504809 = r504806 / r504808;
        double r504810 = sqrt(r504809);
        double r504811 = sqrt(r504793);
        double r504812 = 2.0;
        double r504813 = pow(r504811, r504812);
        double r504814 = r504810 * r504813;
        double r504815 = r504805 * r504814;
        double r504816 = 0.5;
        double r504817 = 3.0;
        double r504818 = pow(r504790, r504817);
        double r504819 = r504806 / r504818;
        double r504820 = sqrt(r504819);
        double r504821 = r504820 * r504813;
        double r504822 = r504816 * r504821;
        double r504823 = r504815 + r504822;
        double r504824 = 0.375;
        double r504825 = 5.0;
        double r504826 = pow(r504790, r504825);
        double r504827 = r504806 / r504826;
        double r504828 = sqrt(r504827);
        double r504829 = r504828 * r504813;
        double r504830 = r504824 * r504829;
        double r504831 = r504823 - r504830;
        double r504832 = r504792 ? r504804 : r504831;
        return r504832;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original19.3
Target0.7
Herbie10.1
\[\frac{1}{\left(x + 1\right) \cdot \sqrt{x} + x \cdot \sqrt{x + 1}}\]

Derivation

  1. Split input into 2 regimes
  2. if x < 7248.001864012984

    1. Initial program 0.3

      \[\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\]
    2. Using strategy rm
    3. Applied flip--0.4

      \[\leadsto \color{blue}{\frac{\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}} \cdot \frac{1}{\sqrt{x + 1}}}{\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}}}\]
    4. Simplified0.4

      \[\leadsto \frac{\color{blue}{\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x}} - \frac{1 \cdot 1}{x + 1}}}{\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}}\]

    if 7248.001864012984 < x

    1. Initial program 39.5

      \[\frac{1}{\sqrt{x}} - \frac{1}{\sqrt{x + 1}}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt39.5

      \[\leadsto \frac{1}{\sqrt{x}} - \frac{1}{\sqrt{\color{blue}{\sqrt{x + 1} \cdot \sqrt{x + 1}}}}\]
    4. Applied sqrt-prod47.6

      \[\leadsto \frac{1}{\sqrt{x}} - \frac{1}{\color{blue}{\sqrt{\sqrt{x + 1}} \cdot \sqrt{\sqrt{x + 1}}}}\]
    5. Applied add-sqr-sqrt47.6

      \[\leadsto \frac{1}{\sqrt{x}} - \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{\sqrt{\sqrt{x + 1}} \cdot \sqrt{\sqrt{x + 1}}}\]
    6. Applied times-frac51.1

      \[\leadsto \frac{1}{\sqrt{x}} - \color{blue}{\frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}} \cdot \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}}}\]
    7. Applied add-sqr-sqrt51.1

      \[\leadsto \frac{1}{\sqrt{\color{blue}{\sqrt{x} \cdot \sqrt{x}}}} - \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}} \cdot \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}}\]
    8. Applied sqrt-prod50.0

      \[\leadsto \frac{1}{\color{blue}{\sqrt{\sqrt{x}} \cdot \sqrt{\sqrt{x}}}} - \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}} \cdot \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}}\]
    9. Applied add-sqr-sqrt50.0

      \[\leadsto \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{\sqrt{\sqrt{x}} \cdot \sqrt{\sqrt{x}}} - \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}} \cdot \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}}\]
    10. Applied times-frac39.6

      \[\leadsto \color{blue}{\frac{\sqrt{1}}{\sqrt{\sqrt{x}}} \cdot \frac{\sqrt{1}}{\sqrt{\sqrt{x}}}} - \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}} \cdot \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}}\]
    11. Applied difference-of-squares39.6

      \[\leadsto \color{blue}{\left(\frac{\sqrt{1}}{\sqrt{\sqrt{x}}} + \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}}\right) \cdot \left(\frac{\sqrt{1}}{\sqrt{\sqrt{x}}} - \frac{\sqrt{1}}{\sqrt{\sqrt{x + 1}}}\right)}\]
    12. Taylor expanded around inf 20.5

      \[\leadsto \color{blue}{\left(0.3125 \cdot \left(\sqrt{\frac{1}{{x}^{7}}} \cdot {\left(\sqrt{1}\right)}^{2}\right) + 0.5 \cdot \left(\sqrt{\frac{1}{{x}^{3}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)\right) - 0.375 \cdot \left(\sqrt{\frac{1}{{x}^{5}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification10.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le 7248.001864012983787688426673412322998047:\\ \;\;\;\;\frac{\frac{1}{\sqrt{x}} \cdot \frac{1}{\sqrt{x}} - \frac{1 \cdot 1}{x + 1}}{\frac{1}{\sqrt{x}} + \frac{1}{\sqrt{x + 1}}}\\ \mathbf{else}:\\ \;\;\;\;\left(0.3125 \cdot \left(\sqrt{\frac{1}{{x}^{7}}} \cdot {\left(\sqrt{1}\right)}^{2}\right) + 0.5 \cdot \left(\sqrt{\frac{1}{{x}^{3}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)\right) - 0.375 \cdot \left(\sqrt{\frac{1}{{x}^{5}}} \cdot {\left(\sqrt{1}\right)}^{2}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019350 +o rules:numerics
(FPCore (x)
  :name "2isqrt (example 3.6)"
  :precision binary64

  :herbie-target
  (/ 1 (+ (* (+ x 1) (sqrt x)) (* x (sqrt (+ x 1)))))

  (- (/ 1 (sqrt x)) (/ 1 (sqrt (+ x 1)))))