Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Algorithm

BKM algorithm

Numerical Algorithm

The BKM algorithm is a shift-and-add method for computing elementary functions, first published in 1994 by Jean-Claude Bajard, Sylvanus Kla and Jean-Michel Muller. It works on complex logarithms (called L-mode) and complex exponentials (E-mode), using an approach similar to the one Henry Briggs used to compute logarithms by hand. A precomputed table of logarithms of terms built from negative powers of two lets the method evaluate a function using only integer addition, shifting and comparison, with no multiplication. BKM resembles CORDIC but stores a table of logarithms where CORDIC stores arctangents. On each iteration BKM chooses a coefficient from a set of nine complex numbers, rather than only minus one or plus one as CORDIC does, and unlike CORDIC it needs no scaling factor applied to the result. Like CORDIC it gains roughly one bit of precision per iteration, but it needs more table entries for the same precision because the table holds logarithms of complex operands. As with other shift-and-add algorithms, it suits hardware implementation well, while its speed in software compared with polynomial or rational approximation depends on fast multi-bit shifts such as a barrel shifter, or on hardware floating point.

Sources
BKM algorithm (Wikipedia)
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.