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

The complete and incomplete elliptic integrals 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).

Routines are also supplied to evaluate Jacobi's elliptic functions CN, DN and SN.


The computer code and data files made available on this web page are distributed under the GNU LGPL 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:


SPECIAL_FUNCTIONS, a FORTRAN90 code which evaluates special functions, including Airy, Associated Legendre Bessel, Beta, Complete Elliptic Integral, Confluent Hypergeometric, Cosine Integral, Elliptic Integral, Error, Exponential Integral, Fresnel Integral, Gamma, Hankel, Hypergeometric, Incomplete Beta, Incomplete Gamma, Jacobian Elliptic, Kelvin, Lambda, Legendre, Mathieu, Modified Spherical Bessel, Parabolic Cylinder, Psi, Riccati-Bessel, Sine Integral, Spheroidal Wave, Struve, Whittaker, as well as Bernoulli Numbers, Euler Numbers, Hermite Polynomials, Laguerre Polynomials, Legendre Polynomials, by Shanjie Zhang, Jianming Jin;

TEST_VALUES, a FORTRAN90 code which supplies test values of various mathematical functions.

TOMS577, a FORTRAN90 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 June 2020.