polpak, a Fortran90 code which evaluates a variety of mathematical functions, polynomials, and sequences, including Bell, Benford, Bernoulli, Bernstein, Cardan, Catalan, Charlier, Chebyshev, Collatz, Delannoy, Euler, Fibonacci, Gegenbauer, Gudermannian, Harmonic, Hermite, Hofstadter, Jacobi, Krawtchouk, Laguerre, Lambert, Legendre, Lerch, Meixner, Mertens, Moebius, Motzkin, Phi, Stirling, Tau, Tribonacci, Zernike.


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


polpak is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version

Related Data and Programs:


bernstein_polynomial, a Fortran90 code which evaluates the Bernstein polynomials;

chebyshev_polynomial, a Fortran90 code which evaluates the Chebyshev polynomial and associated functions.

clausen, a Fortran90 code which evaluates a Chebyshev interpolant to the Clausen function Cl2(x).

cordic, a Fortran90 code which uses the CORDIC method to compute certain elementary functions.

fn, a Fortran90 code which evaluates elementary and special functions, by Wayne Fullerton.

gegenbauer_polynomial, a Fortran90 code which evaluates the Gegenbauer polynomial and associated functions.

hermite_polynomial, a Fortran90 code which evaluates the physicist's Hermite polynomial, the probabilist's Hermite polynomial, the Hermite function, and related functions.

jacobi_polynomial, a Fortran90 code which evaluates the Jacobi polynomial and associated functions.

laguerre_polynomial, a Fortran90 code which evaluates the Laguerre polynomial, the generalized Laguerre polynomials, and the Laguerre function.

legendre_polynomial, a Fortran90 code which evaluates the Legendre polynomial and associated functions.

legendre_product_polynomial, a Fortran90 code which defines Legendre product polynomials, creating a multivariate polynomial as the product of univariate Legendre polynomials.

lobatto_polynomial, a Fortran90 code which evaluates Lobatto polynomials, similar to Legendre polynomials except that they are zero at both endpoints.

special_functions, a Fortran90 code which computes the Beta, Error, Gamma, Lambda, Psi functions, the Airy, Bessel I, J, K and Y, Hankel, Jacobian elliptic, Kelvin, Mathieu, Struve functions, spheroidal angular functions, parabolic cylinder functions, hypergeometric functions, the Bernoulli and Euler numbers, the Hermite, Laguerre and Legendre polynomials, the cosine, elliptic, exponential, Fresnel and sine integrals, by Shanjie Zhang, Jianming Jin;

test_values, a Fortran90 code which contains a few test values of many functions.


  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. Robert Banks,
    Slicing Pizzas, Racing Turtles, and Further Adventures in Applied Mathematics,
    Princeton, 1999,
    ISBN13: 9780691059471,
    LC: QA93.B358.
  3. Frank Benford,
    The Law of Anomalous Numbers,
    Proceedings of the American Philosophical Society,
    Volume 78, 1938, pages 551-572.
  4. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Second Edition,
    Springer, 1987,
    ISBN: 0387964673,
    LC: QA76.9.C65.B73.
  5. Chad Brewbaker,
    Lonesum (0,1)-matrices and poly-Bernoulli numbers of negative index,
    Master of Science Thesis,
    Computer Science Department,
    Iowa State University, 2005.
  6. William Briggs, Van Emden Henson,
    The DFT: An Owner's Manual for the Discrete Fourier Transform,
    SIAM, 1995,
    ISBN13: 978-0-898713-42-8,
    LC: QA403.5.B75.
  7. Theodore Chihara,
    An Introduction to Orthogonal Polynomials,
    Gordon and Breach, 1978,
    ISBN: 0677041500,
    LC: QA404.5 C44.
  8. William Cody,
    Rational Chebyshev Approximations for the Error Function,
    Mathematics of Computation,
    Volume 23, Number 107, July 1969, pages 631-638.
  9. Robert Corless, Gaston Gonnet, David Hare, David Jeffrey, Donald Knuth,
    On the Lambert W Function,
    Advances in Computational Mathematics,
    Volume 5, Number 1, December 1996, pages 329-359.
  10. Bennett Fox,
    Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, December 1986, pages 362-376.
  11. Walter Gautschi,
    Orthogonal Polynomials: Computation and Approximation,
    Oxford, 2004,
    ISBN: 0-19-850672-4,
    LC: QA404.5 G3555.
  12. Ralph Hartley,
    A More Symmetrical Fourier Analysis Applied to Transmission Problems,
    Proceedings of the Institute of Radio Engineers,
    Volume 30, 1942, pages 144-150.
  13. Brian Hayes,
    The Vibonacci Numbers,
    American Scientist,
    Volume 87, Number 4, July-August 1999, pages 296-301.
  14. Brian Hayes,
    Why W?,
    American Scientist,
    Volume 93, Number 2, March-April 2005, pages 104-108.
  15. Ted Hill,
    The First Digit Phenomenon,
    American Scientist,
    Volume 86, Number 4, July/August 1998, pages 358-363.
  16. Douglas Hofstadter,
    Goedel, Escher, Bach,
    Basic Books, 1979,
    ISBN: 0465026567,
    LC: QA9.8H63.
  17. Masanobu Kaneko,
    Poly-Bernoulli Numbers,
    Journal Theorie des Nombres Bordeaux,
    Volume 9, Number 1, 1997, pages 221-228.
  18. Cleve Moler,
    Trigonometry is a Complex Subject,
    MATLAB News and Notes, Summer 1998.
  19. Thomas Osler,
    Cardan Polynomials and the Reduction of Radicals,
    Mathematics Magazine,
    Volume 74, Number 1, February 2001, pages 26-32.
  20. J Simoes Pereira,
    Algorithm 234: Poisson-Charliers Polynomials,
    Communications of the ACM,
    Volume 7, Number 7, July 1964, page 420.
  21. Charles Pinter,
    A Book of Abstract Algebra,
    Second Edition,
    McGraw Hill, 2003,
    ISBN: 0072943505,
    LC: QA162.P56.
  22. Ralph Raimi,
    The Peculiar Distribution of First Digits,
    Scientific American,
    December 1969, pages 109-119.
  23. Dennis Stanton, Dennis White,
    Constructive Combinatorics,
    Springer, 1986,
    ISBN: 0387963472,
    LC: QA164.S79.
  24. Gabor Szego,
    Orthogonal Polynomials,
    American Mathematical Society, 1992,
    ISBN: 0821810235,
    LC: QA3.A5.v23.
  25. Daniel Velleman, Gregory Call,
    Permutations and Combination Locks,
    Mathematics Magazine,
    Volume 68, Number 4, October 1995, pages 243-253.
  26. Divakar Viswanath,
    Random Fibonacci sequences and the number 1.13198824,
    Mathematics of Computation,
    Volume 69, Number 231, July 2000, pages 1131-1155.
  27. Michael Waterman,
    Introduction to Computational Biology,
    Chapman and Hall, 1995,
    ISBN: 0412993910,
    LC: QH438.4.M33.W38.
  28. Eric Weisstein,
    CRC Concise Encyclopedia of Mathematics,
    CRC Press, 2002,
    Second edition,
    ISBN: 1584883472,
    LC: QA5.W45
  29. Stephen Wolfram,
    The Mathematica Book,
    Fourth Edition,
    Cambridge University Press, 1999,
    ISBN: 0-521-64314-7,
    LC: QA76.95.W65.
  30. ML Wolfson, HV Wright,
    ACM Algorithm 160: Combinatorial of M Things Taken N at a Time,
    Communications of the ACM,
    Volume 6, Number 4, April 1963, page 161.
  31. Shanjie Zhang, Jianming Jin,
    Computation of Special Functions,
    Wiley, 1996,
    ISBN: 0-471-11963-6,
    LC: QA351.C45.
  32. Daniel Zwillinger, editor,
    CRC Standard Mathematical Tables and Formulae,
    30th Edition,
    CRC Press, 1996,
    ISBN: 0-8493-2479-3,
    LC: QA47.M315.

Source Code:

Last revised on 18 August 2020.