# 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.

### 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:

1. Pitts Jarvis,
Implementing CORDIC Algorithms,
Dr. Dobb's Journal,
October 1990.
2. Jean-Michel Muller,
Elementary Functions: Algorithms and Implementation,
Second Edition,
Birkhaeuser, 2006,
ISBN13: 978-0-8176-4372-0,
LC: QA331.M866.
3. Allan Sultan,
CORDIC: How Hand Calculators Calculate,
The College Mathematics Journal,
Volume 40, Number 2, March 2009, pages 87-92.
4. Jack Volder,
The CORDIC Computing Technique,
IRE Transactions on Electronic Computers,
Volume 8, Number 3, pages 330-334, 1959.
5. Jack Volder,
The Birth of CORDIC,
Journal of VLSI Signal Processing Systems,
Volume 25, Number 2, pages 101-105, June 2000.
6. 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:

You can go up one level to the MATLAB source codes.