# cordic

cordic, a MATLAB code 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 FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

fn, a MATLAB code which approximates elementary and special functions using Chebyshev polynomials, by Wayne Fullerton.

polpak, a MATLAB code which evaluates a variety of mathematical functions.

test_values, a MATLAB code 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.
• log_cordic.m, computes the natural logarithm function, using the CORDIC method.
• log_values.m, returns some tabulated values of the natural logarithm function.
• multiply_cordic.m, computes Z=X*Y using the CORDIC algorithm.
• 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.