BKM algorithm

BKM algorithm

The BKM algorithm is a shift-and-add algorithm for computing elementary functions, first published in 1994 by J.C. Bajard, S. Kla, and J.M. Muller. BKM is based on computing complex logarithms and exponentials using a method similar to the algorithm Henry Briggs used to compute logarithms. By using a precomputed table of logarithms of negative powers of two, the BKM algorithm computes elementary functions using only integer add, shift, and compare operations.

BKM is similar to CORDIC, but uses a table of logarithms rather than a table of arctangents. On each iteration, a choice of coefficient is made from a set of nine complex numbers, 1, 0, −1, i, −i, 1+i, 1−i, −1+i, −1−i, rather than only −1 or +1 as used by CORDIC. BKM provides a simpler method of computing some elementary functions, and unlike CORDIC, BKM needs no result scaling factor. The convergence rate of BKM is approximately one bit per iteration, like CORDIC, but BKM requires more precomputed table elements for the same precision because the table stores logarithms of complex operands.

As with other algorithms in the shift-and-add class, BKM is particularly well-suited to hardware implementation. The relative performance of software BKM implementation in comparison to other methods such as polynomial or rational approximations will depend on the availability of fast multi-bit shifts (i.e, a barrel shifter) or hardware floating point arithmetic.

References

*J.C. Bajard, S. Kla, and J.M. Muller. [http://perso.ens-lyon.fr/jean-michel.muller/BKM94.pdf BKM: A new hardware algorithm for complex elementary functions] . IEEE Transactions on Computers, 43(8): 955-963, August 1994
*J.M. Muller, Elementary Functions: Algorithms and Implementation, 2nd Ed. Birkhauser 2006


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • BKM — can refer to: * Beurger King Muslim, a fast food restaurant in eastern Paris, France. * Buckinghamshire in England mdash; BKM is the Chapman code for that county. * The BKM algorithm for computing elementary functions based on complex… …   Wikipedia

  • BKM-Algorithmus — Der BKM Algorithmus ist ein iterativer Algorithmus, mit dessen Hilfe sich die Logarithmus und Exponentialfunktion effizient in digitalen Schaltungen berechnen lassen. Er wurde 1994 von J.C. Bajard, S. Kla, and Jean Michel Muller entwickelt, wovon …   Deutsch Wikipedia

  • CORDIC — Trigonometry History Usage Functions Generalized Inverse functions Further reading …   Wikipedia

  • List of numerical analysis topics — This is a list of numerical analysis topics, by Wikipedia page. Contents 1 General 2 Error 3 Elementary and special functions 4 Numerical linear algebra …   Wikipedia

  • List of mathematics articles (B) — NOTOC B B spline B* algebra B* search algorithm B,C,K,W system BA model Ba space Babuška Lax Milgram theorem Baby Monster group Baby step giant step Babylonian mathematics Babylonian numerals Bach tensor Bach s algorithm Bachmann–Howard ordinal… …   Wikipedia

  • Dadda multiplier — basic principle known from manual multiplication Example of Dadda reduction o …   Wikipedia

  • Binary multiplier — A binary multiplier is an electronic circuit used in digital electronics, such as a computer, to multiply two binary numbers. It is built using binary adders. A variety of computer arithmetic techniques can be used to implement a digital… …   Wikipedia

  • Bitalgorithmen — Der BKM Algorithmus ist ein iterativer Algorithmus, mit dessen Hilfe sich die Logarithmus und Exponentialfunktion effizient in digitalen Schaltungen berechnen lassen. Er wurde 1994 von J.C. Bajard, S. Kla, and Jean Michel Muller entwickelt, wovon …   Deutsch Wikipedia

  • Bitalgorithmus — Der BKM Algorithmus ist ein iterativer Algorithmus, mit dessen Hilfe sich die Logarithmus und Exponentialfunktion effizient in digitalen Schaltungen berechnen lassen. Er wurde 1994 von J.C. Bajard, S. Kla, and Jean Michel Muller entwickelt, wovon …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”