double f(double N) {
double r11528493 = N;
double r11528494 = 1.0;
double r11528495 = r11528493 + r11528494;
double r11528496 = atan(r11528495);
double r11528497 = atan(r11528493);
double r11528498 = r11528496 - r11528497;
return r11528498;
}
double f(double N) {
double r11528499 = 1.0;
double r11528500 = N;
double r11528501 = r11528500 + r11528499;
double r11528502 = r11528501 * r11528500;
double r11528503 = r11528502 + r11528499;
double r11528504 = atan2(r11528499, r11528503);
return r11528504;
}
\tan^{-1} \left(N + 1\right) - \tan^{-1} N\tan^{-1}_* \frac{1}{\left(N + 1\right) \cdot N + 1}



Bits error versus N
| Original | 15.8 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 15.8
rmApplied diff-atan14.6
Simplified0.3
Final simplification0.3
herbie shell --seed 2019101
(FPCore (N)
:name "2atan (example 3.5)"
:herbie-target
(atan (/ 1 (+ 1 (* N (+ N 1)))))
(- (atan (+ N 1)) (atan N)))