11-09-2014, 01:39 PM
I know about the CORDIC algorithm quite well I would say, but the formula u used to compute the sine seems to me slightly inefficient since you use multiplications.
I assume you solve the division with a shift, because you divide by a power of two.
But still the beginning with the Taylor Series isn't the best step in my opinion.
By using the rotation of a vector u can break down the needed arithmetic to an iterative algorithm only performing an Addition, a Subtraction and a shift getting a good approximation to actual result in only 15 iterations not only for sine, but also for cosine.
With small changes in the hardware all the elementary functions like trig(sine/cos/tan/arcsine/arccos/arctan), hyp(sinh/cosh/tanh/asinh/acosh/atanh), linear(mul/div) and other terms are possible to compute.
The algorithm was published originally by Jack E. Volder in 1959.
you can take a closer look by clicking the link below:
http://en.wikipedia.org/wiki/CORDIC
A deeper google-research will provide more.
Furthermore i recommend using radian which affords a higher precision.
You can take a trip to my plot to see a example of a implementation of the algorithm which I am currently working on with my friend.
Greetings Mar_Win.
I assume you solve the division with a shift, because you divide by a power of two.
But still the beginning with the Taylor Series isn't the best step in my opinion.
By using the rotation of a vector u can break down the needed arithmetic to an iterative algorithm only performing an Addition, a Subtraction and a shift getting a good approximation to actual result in only 15 iterations not only for sine, but also for cosine.
With small changes in the hardware all the elementary functions like trig(sine/cos/tan/arcsine/arccos/arctan), hyp(sinh/cosh/tanh/asinh/acosh/atanh), linear(mul/div) and other terms are possible to compute.
The algorithm was published originally by Jack E. Volder in 1959.
you can take a closer look by clicking the link below:
http://en.wikipedia.org/wiki/CORDIC
A deeper google-research will provide more.
Furthermore i recommend using radian which affords a higher precision.
You can take a trip to my plot to see a example of a implementation of the algorithm which I am currently working on with my friend.
Greetings Mar_Win.