Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cmcl2!lanl!cochiti.lanl.gov!jlg From: jlg@cochiti.lanl.gov (Jim Giles) Newsgroups: comp.arch Subject: Re: Cordic Math Algorithms Message-ID: <23020@lanl.gov> Date: 1 May 91 23:32:09 GMT References: <2548@spim.mips.COM> <3394@crdos1.crd.ge.COM> <41842@cup.portal.com> <1991May1.171420.11826@jetsun.weitek.COM> Sender: news@lanl.gov Distribution: usa Organization: Los Alamos National Laboratory Lines: 20 In article <1991May1.171420.11826@jetsun.weitek.COM>, weaver@jetsun.weitek.COM (Mike Weaver) writes: |> [...] The algorithms are |> iterative, and take one iteration per result bit. By my thinking, this |> is slow, but speed is relative. On the other hand, the only hardware |> required is an adder and a shift by one place. [...] Yes, CORDIC is "fast" only in certain contexts. If you have fast adder and shift units, but no fast multiply, CORDIC may be the fastest thing there is. If you have a fast multiply (that is, one that's not iterative), then there are other, faster algorithms. There is, however, one advantage to CORDIC for embedded systems where space or hardware complexity is a premium and speed is secondary: CORDIC can use the same hardware (and mostly the same algorithm) to do sin, cos, arctan, sinh, cosh, arctanh, sqrt, multiply and divide (and probably some more that I've forgotten). By composing these functions together, CORDIC can also give you tan, tanh, ln (natural log), exp, and several others. That's why it was often chosen by manufacturers of pocket calculators. J. Giles