Average Error: 0.0 → 0.7
Time: 4.1s
Precision: 64
\[1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\]
\[1 - \frac{1}{2 + \left(\sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}} \cdot \sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\]
1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}
1 - \frac{1}{2 + \left(\sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}} \cdot \sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}
double f(double t) {
        double r70215 = 1.0;
        double r70216 = 2.0;
        double r70217 = t;
        double r70218 = r70216 / r70217;
        double r70219 = r70215 / r70217;
        double r70220 = r70215 + r70219;
        double r70221 = r70218 / r70220;
        double r70222 = r70216 - r70221;
        double r70223 = r70222 * r70222;
        double r70224 = r70216 + r70223;
        double r70225 = r70215 / r70224;
        double r70226 = r70215 - r70225;
        return r70226;
}

double f(double t) {
        double r70227 = 1.0;
        double r70228 = 2.0;
        double r70229 = t;
        double r70230 = r70228 / r70229;
        double r70231 = r70227 / r70229;
        double r70232 = r70227 + r70231;
        double r70233 = r70230 / r70232;
        double r70234 = r70228 - r70233;
        double r70235 = sqrt(r70234);
        double r70236 = r70235 * r70235;
        double r70237 = r70236 * r70234;
        double r70238 = r70228 + r70237;
        double r70239 = r70227 / r70238;
        double r70240 = r70227 - r70239;
        return r70240;
}

Error

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.7

    \[\leadsto 1 - \frac{1}{2 + \color{blue}{\left(\sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}} \cdot \sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}}\right)} \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\]
  4. Final simplification0.7

    \[\leadsto 1 - \frac{1}{2 + \left(\sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}} \cdot \sqrt{2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}\]

Reproduce

herbie shell --seed 2020064 +o rules:numerics
(FPCore (t)
  :name "Kahan p13 Example 3"
  :precision binary64
  (- 1 (/ 1 (+ 2 (* (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))) (- 2 (/ (/ 2 t) (+ 1 (/ 1 t)))))))))