CORDIC
Approximation of Elementary Functions {#cordic-approximation-of-elementary-functions align="center"}
CORDIC is a C++ library which uses the CORDIC algorithm to evaluate certain functions, in particular the sine and cosine.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
CORDIC is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.
FN, a C++ library which contains routines by Wayne Fullerton for evaluating elementary and special functions.
POLPAK, a C++ library which evaluates recursively defined polynomials and other special functions.
SPECFUN, a FORTRAN90 library which evaluates certain special functions using fitted data.
TEST_VALUES, a C++ library which returns some tabulated values of various functions.
- Pitts Jarvis,
Implementing CORDIC Algorithms,
Dr. Dobb's Journal,
October 1990. - Jean-Michel Muller,
Elementary Functions: Algorithms and Implementation,
Second Edition,
Birkhaeuser, 2006,
ISBN13: 978-0-8176-4372-0,
LC: QA331.M866. - Allan Sultan,
CORDIC: How Hand Calculators Calculate,
The College Mathematics Journal,
Volume 40, Number 2, March 2009, pages 87-92. - Jack Volder,
The CORDIC Computing Technique,
IRE Transactions on Electronic Computers,
Volume 8, Number 3, pages 330-334, 1959. - Jack Volder,
The Birth of CORDIC,
Journal of VLSI Signal Processing Systems,
Volume 25, Number 2, pages 101-105, June 2000. - Anthony Williams,
Optimizing Math-Intensive Applications with Fixed-Point Arithmetic,
Dr Dobb's Journal,
Volume 33, Number 4, April 2008, pages 38-43.
- cordic.cpp, the source code;
- cordic.hpp, the include file;
- cordic_prb.cpp, the calling program;
- cordic_prb_output.txt, the sample output.
- ANGLE_SHIFT shifts angle ALPHA to lie between BETA and BETA+2PI.
- ARCCOS_CORDIC returns the arccosine of an angle using the CORDIC method.
- ARCCOS_VALUES returns some values of the arc cosine function.
- ARCSIN_CORDIC returns the arcsine of an angle using the CORDIC method.
- ARCSIN_VALUES returns some values of the arc sine function.
- ARCTAN_CORDIC returns the arctangent of an angle using the CORDIC method.
- ARCTAN_VALUES returns some values of the arc tangent function.
- CBRT_CORDIC returns the cube root of a value using the CORDIC method.
- CBRT_VALUES returns some values of the cube root function.
- COS_VALUES returns some values of the cosine function.
- COSSIN_CORDIC returns the sine and cosine of an angle by the CORDIC method.
- EXP_CORDIC evaluates the exponential function using the CORDIC method.
- EXP_VALUES returns some values of the exponential function.
- I4_HUGE returns a "huge" I4.
- I4_MIN returns the minimum of two I4's.
- LN_CORDIC evaluates the natural logarithm using the CORDIC method.
- LN_VALUES returns some values of the natural logarithm function.
- R8_UNIFORM_01 returns a unit pseudorandom R8.
- SIN_VALUES returns some values of the sine function.
- SQRT_CORDIC returns the square root of a value using the CORDIC method.
- SQRT_VALUES returns some values of the square root function.
- TAN_CORDIC returns the tangent of an angle using the CORDIC method.
- TAN_VALUES returns some values of the tangent function.
- TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to the C++ source codes.
Last modified on 23 June 2007.