Average Error: 29.7 → 29.6
Time: 24.1s
Precision: 64
Internal Precision: 128
\[\sqrt{x + 1} - \sqrt{x}\]
\[(e^{\log_* (1 + (\left(\sqrt[3]{\sqrt[3]{\sqrt{1 + x} \cdot \sqrt{1 + x}} \cdot \left(\sqrt[3]{\sqrt{1 + x} \cdot \sqrt{1 + x}} \cdot \sqrt[3]{\sqrt{1 + x} \cdot \sqrt{1 + x}}\right)}\right) \cdot \left(\sqrt[3]{\sqrt{1 + x}}\right) + \left(-\sqrt{x}\right))_*)} - 1)^*\]

Error

Bits error versus x

Target

Original29.7
Target0.2
Herbie29.6
\[\frac{1}{\sqrt{x + 1} + \sqrt{x}}\]

Derivation

  1. Initial program 29.7

    \[\sqrt{x + 1} - \sqrt{x}\]
  2. Using strategy rm
  3. Applied add-cube-cbrt29.8

    \[\leadsto \color{blue}{\left(\sqrt[3]{\sqrt{x + 1}} \cdot \sqrt[3]{\sqrt{x + 1}}\right) \cdot \sqrt[3]{\sqrt{x + 1}}} - \sqrt{x}\]
  4. Applied fma-neg29.8

    \[\leadsto \color{blue}{(\left(\sqrt[3]{\sqrt{x + 1}} \cdot \sqrt[3]{\sqrt{x + 1}}\right) \cdot \left(\sqrt[3]{\sqrt{x + 1}}\right) + \left(-\sqrt{x}\right))_*}\]
  5. Using strategy rm
  6. Applied cbrt-unprod29.7

    \[\leadsto (\color{blue}{\left(\sqrt[3]{\sqrt{x + 1} \cdot \sqrt{x + 1}}\right)} \cdot \left(\sqrt[3]{\sqrt{x + 1}}\right) + \left(-\sqrt{x}\right))_*\]
  7. Using strategy rm
  8. Applied expm1-log1p-u29.6

    \[\leadsto \color{blue}{(e^{\log_* (1 + (\left(\sqrt[3]{\sqrt{x + 1} \cdot \sqrt{x + 1}}\right) \cdot \left(\sqrt[3]{\sqrt{x + 1}}\right) + \left(-\sqrt{x}\right))_*)} - 1)^*}\]
  9. Using strategy rm
  10. Applied add-cube-cbrt29.6

    \[\leadsto (e^{\log_* (1 + (\left(\sqrt[3]{\color{blue}{\left(\sqrt[3]{\sqrt{x + 1} \cdot \sqrt{x + 1}} \cdot \sqrt[3]{\sqrt{x + 1} \cdot \sqrt{x + 1}}\right) \cdot \sqrt[3]{\sqrt{x + 1} \cdot \sqrt{x + 1}}}}\right) \cdot \left(\sqrt[3]{\sqrt{x + 1}}\right) + \left(-\sqrt{x}\right))_*)} - 1)^*\]
  11. Final simplification29.6

    \[\leadsto (e^{\log_* (1 + (\left(\sqrt[3]{\sqrt[3]{\sqrt{1 + x} \cdot \sqrt{1 + x}} \cdot \left(\sqrt[3]{\sqrt{1 + x} \cdot \sqrt{1 + x}} \cdot \sqrt[3]{\sqrt{1 + x} \cdot \sqrt{1 + x}}\right)}\right) \cdot \left(\sqrt[3]{\sqrt{1 + x}}\right) + \left(-\sqrt{x}\right))_*)} - 1)^*\]

Reproduce

herbie shell --seed 2019068 +o rules:numerics
(FPCore (x)
  :name "2sqrt (example 3.1)"

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

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