CORDIC
Approximation of Elementary Functions
CORDIC
is a C++ library which
uses the CORDIC algorithm to evaluate
certain functions, in particular the sine and cosine.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
CORDIC is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
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.
Reference:
-
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.
Source Code:
Examples and Tests:
List of Routines:
-
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.