This Article 
 Bibliographic References 
 Add to: 
On Hardware for Computing Exponential and Trigonometric Functions
March 1996 (vol. 45 no. 3)
pp. 328-339

Abstract—This paper presents new, fast hardware for computing the exponential function, sine, and cosine. The main new idea is to use low-precision arithmetic components to approximate high precision computations, and then to correct very quickly the approximation error periodically so that the effect is to get high precision computation at near low-precision speed. The algorithm used in the paper is a nontrivial modification of the well-known CORDIC algorithm, and might be applicable to the computation of other functions than the ones presented.

[1] P.W. Baker,"Parallel Multiplicative Algorithms for Some Elementary Functions," IEEE Trans. Computers, pp. 322-325, 1975.
[2] P.W. Baker,"Suggestion for a Fast Binary Sine/Cosine Generator," IEEE Trans. Computers, pp. 1,134-1,136, Nov. 1976.
[3] P.W. Baker,"Predictive Algorithms for Some Elementary Functions in Radix 2," Electronics Letters, vol. 9, pp. 493-494, 1973.
[4] P.K. Chan and M.D.F. Schlag, "Analysis and Design of CMOS Manchester Adders with Variable Carry-Skip," IEEE Trans. Computers, Vol. 39, No. 8, Aug. 1990, pp. 983-992.
[5] T.C. Chen,"Automatic Computation of Exponentials, Logarithms, Ratios, and Square Roots," IBM J. Research and Development, vol. 16, pp. 380-388, July 1972.
[6] W. Cody and W. Waite,Software Manual for the Elementary Functions.Englewood Cliffs, N.J.: Prentice Hall, 1980.
[7] FasMath Accuracy Report, Aug. 1989.Richardson, Texas: Cyrix Corporation.
[8] B. DeLugish,"A Class of Algorithms for Automatic Evaluation of Certain Elementary Functions in a Binary Computer," PhD dissertation, Dept. of Computer Science, Univ. of Illi nois, Urbana-Champaign, June 1970.
[9] J. Duprat and J.-M Muller,"The CORDIC Algorithm: New Results for Fast VLSI Implemenation," IEEE Trans. Computers, vol. 42, no. 2, pp. 168-178 Feb. 1993.
[10] M. Ercegovac,"Radix-16 Evaluation of Certain Elementary Functions," IEEE Trans. Computers, vol. 22, pp. 561-566, 1973.
[11] J.F. Hart et al., Computer Approximations.New York: John Wiley&Sons, 1968.
[12] N. Juffa,Everything You Always Wanted to Know about Math Coprocessors. Electronic manuscript, version 6, Oct. 1994.
[13] V. Kantabutra, "Designing One-Level Carry-Skip Adders," IEEE Trans. Computers, vol. 42, no. 6, pp. 759-764, June 1993.
[14] V. Kantabutra,"Accelerated Two-Level Carry-Skip Adders—A Type of Very Fast Adders," IEEE Trans. Computers, vol. 42, no. 11, pp. 1,389-1,393, Nov. 1993.
[15] V. Kantabutra, "A Recursive Carry-Lookahead/Carry-Select Hybrid Adder," IEEE Trans. Computers, vol. 42, no. 12, pp. 1,495-1,499, Dec. 1993.
[16] D. Knuth, The Art of Computer Programming, Vol. 2, Addison-Wesley, Reading, Mass., 1998.
[17] I. Koren, “Evaluating Elementary Functions in a Numerical Coprocessor Based on Rational Approximations,” IEEE Trans. Computers, vol. 39, pp. 1030-1037, 1990.
[18] I. Koren, Computer Arithmetic Algorithms.Englewood Cliffs, N.J.: Prentice Hall, 1993.
[19] R.J. Linhardt and H.S. Miiller,"Digit-by-Digit Transcendental Function Computation," RCA Rev., vol. 30, pp. 209-247, 1969.
[20] P.W. Markstein, “Computation of Elementary Functions on the IBM RISC System/6000 Processor,” IBM J. Research and Development, vol. 34, no. 1, pp. 111-119, Jan. 1990.
[21] R.K. Montoye, E. Hokenek, and S.L. Runyon, "Design of the IBM RISC System/6000 Floating-Point Execution Unit," IBM J. Research and Development, vol. 34, pp. 59-70, Jan. 1990.
[22] J. Mori et al., "A 10nS 54×54-b Parallel Structured Full Array Multiplier with 0.5-u CMOS Technology," IEEE J. Solid State Circuits, vol. 26, no. 4, Apr. 1991.
[23] J. Barkley Rosser,"Solving Differential Equations on a Hand Held Programmable Calculator," Studies in Numerical Analysis, MAA Studies in Mathematics, vol. 24, G.H. Golub, ed., Math. Assoc. of America, 1984.
[24] W.H. Specker,"A Class of Algorithms for lnx, expx, sinx, cosx, tan−1x, and cot−1x," IEEE Trans. Electronic Computers, vol. 14, pp. 85-86, 1965.
[25] N. Takagi,"Studies on Hardware Algorithms for Arithmetic Operations with a Redundant Binary Adder," PhD dissertation, Dept. of Information Sciences, Faculty of Eng., Kyoto Univ., pp. 91-100, Aug. 1987.
[26] N. Takagi,T. Asada, and S. Yajima,"Redundant CORDIC Methods with a Constant Scale Factor for Sine and Cosine Computation," IEEE Trans. Computers, vol. 40, no. 9, pp. 989-995, Sept. 1991.
[27] P.T.P. Tang, “Table-Lookup Algorithms for Elementary Functions and Their Error Analysis,” Proc. 10th Symp. Computer Arithmetic, pp. 232-236, 1991.
[28] P.T.P. Tang, personal communication, 1994.
[29] D. Timmermann, H. Hahn, and B.J. Hosticka, "Low Latency Time CORDIC Algorithms," IEEE Trans. Computers, vol. 41, no. 8, pp. 1,010-1,015, Aug. 1992.
[30] J.E. Volder,"The CORDIC Trigonometric Computing Technique," IRE Trans. Electronic Computers, vol. 8, pp. 330-334, 1959.
[31] J.S. Walther,"A Unified Algorithm for Elementary Functions," Proc. Spring Joint Computer Conf., pp. 379-385, 1971.
[32] N. Weste and K. Eshraghian, Principles of CMOS VLSI Design, Addison-Wesley, 1994.

Index Terms:
Exponential function, trigonometric functions, elementary functions, transcendental functions, CORDIC, division by convergence, high-precision VLSI computer arithmetic hardware, real-time graphics, navigation, control systems.
Vitit Kantabutra, "On Hardware for Computing Exponential and Trigonometric Functions," IEEE Transactions on Computers, vol. 45, no. 3, pp. 328-339, March 1996, doi:10.1109/12.485571
Usage of this product signifies your acceptance of the Terms of Use.