CORDIC
Approximation of Elementary Functions
CORDIC
is a MATLAB 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 MATLAB library which
approximates elementary and special functions using Chebyshev polynomials,
by Wayne Fullerton.
POLPAK,
a MATLAB library which
evaluates a variety of mathematical functions.
SPECFUN,
a FORTRAN90 library which
evaluates certain special functions
using fitted data.
TEST_VALUES,
a MATLAB 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:
-
angle_shift.m,
shifts an angle so it lies between BETA and BETA+2*PI.
-
arccos_cordic.m,
computes the arccosine, using the CORDIC method.
-
arccos_values.m,
returns some tabulated values of the arccosine function.
-
arcsin_cordic.m,
computes the arcsine, using the CORDIC method.
-
arcsin_values.m,
returns some tabulated values of the arcsine function.
-
arctan_cordic.m,
computes the arctangent, using the CORDIC method.
-
arctan_values.m,
returns some tabulated values of the arctangent function.
-
cbrt_cordic.m,
estimates the cube root function using the CORDIC algorithm.
-
cbrt_values.m,
returns some tabulated values of the cube root function.
-
cos_values.m,
returns some tabulated values of the cosine function.
-
cossin_cordic.m,
computes the cosine and sine of an angle,
using the CORDIC method.
-
exp_cordic.m,
computes the exponential function,
using the CORDIC method.
-
exp_values.m,
returns some tabulated values of the exponential function.
-
ln_cordic.m,
computes the natural logarithm function,
using the CORDIC method.
-
ln_values.m,
returns some tabulated values of the natural logarithm function.
-
r8_uniform_01.m,
returns a unit pseudorandom value.
-
sin_values.m,
returns some tabulated values of the sine function.
-
sqrt_cordic.m,
estimates the square root function using the CORDIC algorithm.
-
sqrt_values.m,
returns some tabulated values of the square root function.
-
tan_cordic.m,
computes the tangent of an angle,
using the CORDIC method.
-
tan_values.m,
returns some tabulated values of the tangent function.
-
timestamp.m,
prints the current YMDHMS date as a time stamp.
Examples and Tests:
-
cordic_test.m, calls all the tests;
-
cordic_test_output.txt, the sample output.
-
cordic_test001.m,
tests COSSIN_CORDIC for calculating the cosine;
-
cordic_test002.m,
tests COSSIN_CORDIC for calculating the sine;
-
cordic_test003.m,
tests ARCTAN_CORDIC;
-
cordic_test004.m,
tests ARCCOS_CORDIC;
-
cordic_test005.m,
tests ARCSIN_CORDIC;
-
cordic_test006.m,
tests TAN_CORDIC;
-
cordic_test007.m,
tests EXP_CORDIC;
-
cordic_test008.m,
tests LN_CORDIC;
-
cordic_test009.m,
tests SQRT_CORDIC;
-
cordic_test010.m,
tests CBRT_CORDIC;
You can go up one level to
the MATLAB source codes.
Last modified on 23 January 2012.