elliptic_integral, a MATLAB code which evaluates elliptic integral functions using Carlson's elliptic functions.

The complete and incomplete elliptic functions of the first, second and third kind can be evaluated, with parameters A (angle in degrees), K (sine of A) or M (the modulus, K^2).

The Jacobi elliptic functions CN(U,M), DN(U,M) and SN(U,M) can be evaluated with parameter M.


The computer code and data files made available on this web page are distributed under the MIT license


elliptic_integral is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

elfun, a MATLAB code which evaluates elliptic integrals and Jacobi elliptic functions cn(), dn(), sn(), by Milan Batista.


test_values, a MATLAB code which supplies test values of various mathematical functions.

toms577, a MATLAB code which evaluates Carlson's elliptic integral functions RC, RD, RF and RJ. This is a version of ACM TOMS algorithm 577;


  1. Roland Bulirsch,,
    Numerical calculation of elliptic integrals and elliptic functions,,
    Numerische Mathematik,,
    Volume 7, Number 1, 1965, pages 78-90.
  2. Bille Carlson,
    Computing Elliptic Integrals by Duplication,
    Numerische Mathematik,
    Volume 33, 1979, pages 1-16.
  3. Bille Carlson, Elaine Notis,
    Algorithm 577, Algorithms for Incomplete Elliptic Integrals,
    ACM Transactions on Mathematical Software,
    Volume 7, Number 3, pages 398-403, September 1981.

Source Code:

Last revised on 19 November 2020.