polpak, a C++ 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 C++ code which evaluates the Bernstein polynomials, useful for uniform approximation of functions;

besselj, a C++ code which evaluates Bessel J functions of noninteger order.

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

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

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

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

gsl_test a C++ code which evaluates many special functions.

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

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

laguerre_polynomial, a C++ code which evaluates the Laguerre polynomial, the generalized Laguerre polynomial, and the Laguerre function.

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

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

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

test_values, a C++ code which stores values of many mathematical functions, and can be used for testing.


  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 31 March 2020.