というわけで、x - x^3/3! + x^5/5! - x^7/7! + ・・・ で実装した。
sin()との比較もしたけど、10項目まで計算すると小数点以下10桁くらいの精度になった。
double sine(double x, int n) {
double ret = 0;
double jj = x;
for(int nn = 1; nn <= n; nn++) {
ret += jj;
jj *= - x * x / ((2*nn) * (2*nn+1));
}
return ret;
}