Average Error: 0.1 → 0.1
Time: 2.0s
Precision: 64
\[\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}\]
\[\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 \cdot 2 - {\left(\frac{2 \cdot t}{1 + t}\right)}^{3} \cdot \frac{2 \cdot t}{1 + t}} \cdot \left(2 - \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right)\]
\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}
\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 \cdot 2 - {\left(\frac{2 \cdot t}{1 + t}\right)}^{3} \cdot \frac{2 \cdot t}{1 + t}} \cdot \left(2 - \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right)
double f(double t) {
        double r49617 = 1.0;
        double r49618 = 2.0;
        double r49619 = t;
        double r49620 = r49618 * r49619;
        double r49621 = r49617 + r49619;
        double r49622 = r49620 / r49621;
        double r49623 = r49622 * r49622;
        double r49624 = r49617 + r49623;
        double r49625 = r49618 + r49623;
        double r49626 = r49624 / r49625;
        return r49626;
}

double f(double t) {
        double r49627 = 1.0;
        double r49628 = 2.0;
        double r49629 = t;
        double r49630 = r49628 * r49629;
        double r49631 = r49627 + r49629;
        double r49632 = r49630 / r49631;
        double r49633 = r49632 * r49632;
        double r49634 = r49627 + r49633;
        double r49635 = r49628 * r49628;
        double r49636 = 3.0;
        double r49637 = pow(r49632, r49636);
        double r49638 = r49637 * r49632;
        double r49639 = r49635 - r49638;
        double r49640 = r49634 / r49639;
        double r49641 = r49628 - r49633;
        double r49642 = r49640 * r49641;
        return r49642;
}

Error

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}\]
  2. Using strategy rm
  3. Applied flip-+0.1

    \[\leadsto \frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{\color{blue}{\frac{2 \cdot 2 - \left(\frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right) \cdot \left(\frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right)}{2 - \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}}}\]
  4. Applied associate-/r/0.1

    \[\leadsto \color{blue}{\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 \cdot 2 - \left(\frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right) \cdot \left(\frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right)} \cdot \left(2 - \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right)}\]
  5. Simplified0.1

    \[\leadsto \color{blue}{\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 \cdot 2 - {\left(\frac{2 \cdot t}{1 + t}\right)}^{3} \cdot \frac{2 \cdot t}{1 + t}}} \cdot \left(2 - \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}\right)\]
  6. Final simplification0.1

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

Reproduce

herbie shell --seed 2020046 
(FPCore (t)
  :name "Kahan p13 Example 1"
  :precision binary64
  (/ (+ 1 (* (/ (* 2 t) (+ 1 t)) (/ (* 2 t) (+ 1 t)))) (+ 2 (* (/ (* 2 t) (+ 1 t)) (/ (* 2 t) (+ 1 t))))))