Approximation of Elementary Functions

CORDIC is a FORTRAN90 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.

Related Data and Programs:

FN, a FORTRAN90 library which evaluates elementary and special functions, by Wayne Fullerton.

POLPAK, a FORTRAN90 library which evaluates recursively defined polynomials and other special functions.

SPECFUN, a FORTRAN90 library which evaluates certain special functions using fitted data.

SPECIAL_FUNCTIONS, a FORTRAN90 library which computes special functions, by Shanjie Zhang, Jianming Jin;

TEST_VALUES, a FORTRAN90 library which returns some tabulated values of various functions.


  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. Frederick Ruckdeschel,
    BASIC Scientific Subroutines,
    Volume II,
    McGraw-Hill, 1980,
    ISBN: 0-07-054202-3,
    LC: QA76.95.R82.
  4. Allan Sultan,
    CORDIC: How Hand Calculators Calculate,
    The College Mathematics Journal,
    Volume 40, Number 2, March 2009, pages 87-92.
  5. Jack Volder,
    The CORDIC Computing Technique,
    IRE Transactions on Electronic Computers,
    Volume 8, Number 3, pages 330-334, 1959.
  6. Jack Volder,
    The Birth of CORDIC,
    Journal of VLSI Signal Processing Systems,
    Volume 25, Number 2, pages 101-105, June 2000.
  7. 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:

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

Last modified on 21 June 2007.