Average Error: 0.0 → 0.1
Time: 3.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 r56442 = 1.0;
        double r56443 = 2.0;
        double r56444 = t;
        double r56445 = r56443 * r56444;
        double r56446 = r56442 + r56444;
        double r56447 = r56445 / r56446;
        double r56448 = r56447 * r56447;
        double r56449 = r56442 + r56448;
        double r56450 = r56443 + r56448;
        double r56451 = r56449 / r56450;
        return r56451;
}

double f(double t) {
        double r56452 = 1.0;
        double r56453 = 2.0;
        double r56454 = t;
        double r56455 = r56453 * r56454;
        double r56456 = r56452 + r56454;
        double r56457 = r56455 / r56456;
        double r56458 = r56457 * r56457;
        double r56459 = r56452 + r56458;
        double r56460 = r56453 * r56453;
        double r56461 = 3.0;
        double r56462 = pow(r56457, r56461);
        double r56463 = r56462 * r56457;
        double r56464 = r56460 - r56463;
        double r56465 = r56459 / r56464;
        double r56466 = r56453 - r56458;
        double r56467 = r56465 * r56466;
        return r56467;
}

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

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

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

    \[\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 2020024 
(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))))))