C++ Taylor series
<p>Hi i have used this code , but it outputs me 0.00159265 instead of 0. where is the problem ?</p>

<p>I have used taylor's expansion to calculate sin :</p>

<pre><code>#include &lt;iostream&gt;
#include &lt;conio.h&gt;
using namespace std;
double sin(double x)
{
       double value = x ;
       value -=(x*x*x)/6.0 ;
       value +=(x*x*x*x*x)/120.0; 
       value -=(x*x*x*x*x*x*x)/5040.0 ;
       value +=(x*x*x*x*x*x*x*x*x)/362880.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x)/39916800.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x)/6227020800.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/1307674368000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/355687428096000.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/121645100408832000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/51090942171709440000.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/25852016738884976640000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/15511210043330985984000000.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/10888869450418352160768000000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/8841761993739701954543616000000.0;
       return value;
}
int main()
{
 cout&lt;&lt;sin(3.14);
 getche();
 return 0;
}
</code></pre>

<p>Now :</p>

<p>I have moved my point and divergence radius between x and 3.1415 and now corrected :</p>

<pre><code>double sin(double x)
{
       x=x-3.1415;
       double value = x ;
       value -=(x*x*x)/6.0 ;
       value +=(x*x*x*x*x)/120.0; 
       value -=(x*x*x*x*x*x*x)/5040.0 ;
       value +=(x*x*x*x*x*x*x*x*x)/362880.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x)/39916800.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x)/6227020800.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/1307674368000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/355687428096000.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/121645100408832000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/51090942171709440000.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/25852016738884976640000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/15511210043330985984000000.0;
       value -=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/10888869450418352160768000000.0;
       value +=(x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x)/8841761993739701954543616000000.0;
       return value;
}
</code></pre>

<p>But it is give me reverse example : pi/2 = -1 and 3*pi/2 = 1.</p>
