Is anyone here a member of the IEEE Transactions on Computers group?
I'm working on a mcs51 assembly language version of the floating point
library, for inclusion in SDCC's library. I'm trying to use the very
efficient CORDIC algorithms (requires only shifts and adds). I'm stuck
on asin() and acos(), which are working but not accurate over the
required ranges. I'll attach the test code, in case anyone is interested.
Apparantly a paper was published with modifications to the basic cordic
algorithm that allow it to work well for arcsin and arccos. Volume 42,
No 1, pages 118 to 122.
Does anyone here have IEEE membership with access to this paper, or
perhaps a paper copy of volume 42 in their office or university library?
From: Scott Dattalo <scott@da...> - 2004-08-04 03:19:50
On Tue, 3 Aug 2004, Paul Stoffregen wrote:
> Is anyone here a member of the IEEE Transactions on Computers group?
I'm not an IEEE member and do not know anything about the paper you cite.
And I'm not going to specifically address the topic you raise either. :)
However, I'm familiar with computing the arcsine function. Here's an
implementation for the midrange PIC processors:
The CORDIC algorithm is interesting, but in my experience for PIC's a look
up table with linear interpolation is more efficient; at least for low
resolutions like 8-10 bits. The CORDIC algorithm scales better than look
up tables for higher resolutions (which probably explains why you never
see look up tables for floating point libraries). I never attempted to
determine the resolution boundary where one would choose one algorithm
over the other.
Anyway, sorry to waste a little bandwidth here...
To everyone who responded, thank you.
Someone forwarded me the IEEE paper by email and today I managed (after
some struggling with matrix algebra notation) to get implement it in C
using only shifts and adds. I'll attach the code, for anyone who may be
I still have a few more issues to resolve and more testing to do before
attempting it in assembly.