\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 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}double f(double t) {
double r75186 = 1.0;
double r75187 = 2.0;
double r75188 = t;
double r75189 = r75187 * r75188;
double r75190 = r75186 + r75188;
double r75191 = r75189 / r75190;
double r75192 = r75191 * r75191;
double r75193 = r75186 + r75192;
double r75194 = r75187 + r75192;
double r75195 = r75193 / r75194;
return r75195;
}
double f(double t) {
double r75196 = 1.0;
double r75197 = 2.0;
double r75198 = t;
double r75199 = r75197 * r75198;
double r75200 = r75196 + r75198;
double r75201 = r75199 / r75200;
double r75202 = r75201 * r75201;
double r75203 = r75196 + r75202;
double r75204 = r75197 + r75202;
double r75205 = r75203 / r75204;
return r75205;
}



Bits error versus t
Results
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020060
(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))))))