**r8poly**,
a MATLAB code which
contains a number of utilities for polynomials with R8 coefficients,
that is, using double precision or 64 bit real arithmetic.

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

**r8poly** is available in
a C++ version and
a C version and
a FORTRAN90 version and
a MATLAB version and
a Python version.

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

monomial, a MATLAB code which enumerates, lists, ranks, unranks and randomizes multivariate monomials in a space of M dimensions, with total degree less than N, equal to N, or lying within a given range.

polynomial, a MATLAB code which adds, multiplies, differentiates, evaluates and prints multivariate polynomials in a space of M dimensions.

- r8_sign.m, returns the sign of an R8.
- r82poly2_print.m, prints a second order polynomial in two variables;
- r82poly2_type.m, analyzes a second order polynomial in two variables.
- r82poly2_type_print.m, prints the meaning of the output from R82POLY2_TYPE.
- r82poly_value.m, evaluates a polynomial of X and Y of total degree M, using a coefficient ordering that begins with the constant term.
- r8mat_inverse_3d.m, computes the inverse of a 3 by 3 R8MAT;
- r8mat_print.m, prints an R8MAT;
- r8mat_print_some.m, prints some of an R8MAT;
- r8poly_add.m, adds two polynomials;
- r8poly_ant_coef.m, returns the coefficients of the antiderivative of a polynomial;
- r8poly_ant_value.m, evaluates the antiderivative of a polynomial.
- r8poly_chebyshev.m, returns the Chebyshev polynomial of degree d;
- r8poly_chebyshev_value.m, evaluates the Chebyshev polynomial of degree d;
- r8poly_chebyshev_value_ab.m, evaluates the Chebyshev polynomial of degree d remapped to [a,b];
- r8poly_degree.m, returns the degree of a polynomial;
- r8poly_deriv_coef.m, returns the coefficients of the derivative of a polynomial;
- r8poly_deriv_value.m, evaluates the derivative of a polynomial;
- r8poly_hermite.m, returns the Hermite polynomial of degree d;
- r8poly_integral.m, returns the integral of a polynomial over [a,b].
- r8poly_is_zero.m, is true if the polynomial is equivalent to the zero polynomial;
- r8poly_lagrange_0.m, evaluates the Lagrange factor at a point;
- r8poly_lagrange_1.m, evaluates the first derivative of the Lagrange factor at a point;
- r8poly_lagrange_2.m, evaluates the second derivative of the Lagrange factor at a point;
- r8poly_lagrange_coef.m, returns the coefficients of a Lagrange polynomial;
- r8poly_lagrange_factor.m, evaluates the polynomial Lagrange factor at a point;
- r8poly_lagrange_value.m, evaluates the IPOL-th Lagrange polynomial;
- r8poly_legendre.m, returns the Legendre polynomial of degree d;
- r8poly_legendre_value.m, evaluates the Legendre polynomial of degree d;
- r8poly_legendre_value_ab.m, evaluates the Legendre polynomial of degree d remapped to [a,b];
- r8poly_multiply.m, multiplies two polynomials;
- r8poly_norm.m, computes the L2 norm of a polynomial over [a,b];
- r8poly_power.m, computes a positive integer power of a polynomial;
- r8poly_print.m, prints a polynomial;
- r8poly_shift.m, adjusts the coefficients of a polynomial for a new argument.
- r8poly_square.m, squares a polynomial;
- r8poly_value.m, evaluates a polynomial using a naive method;
- r8poly_value_horner.m, evaluates a polynomial using Horner's method;
- r8poly_value_fast.m, evaluates a polynomial, using the coefficient ordering that is the opposite of that which Matlab's polyval() assumes, and using Matlab's presumably faster, but more obscure, linear algebra approach.
- r8poly_values_horner.m, evaluates a polynomial, using Horner's method.
- r8poly2_discriminant.m, returns the discriminant of a quadratic polynomial;
- r8poly2_ex.m, finds the extremal point of a quadratic polynomial determined by three points.
- r8poly2_ex2.m, finds the extremal point of a quadratic polynomial determined by three points.
- r8poly2_root.m, returns the two roots of a quadratic polynomial.
- r8poly2_rroot.m, returns the real parts of the two roots of a quadratic polynomial.
- r8poly2_val.m, evaluates a quadratic polynomial defined by three data values.
- r8poly2_val2.m, evaluates a quadratic polynomial interpolant through tabular data.
- r8poly3_discriminant.m, returns the discriminant of a cubic polynomial;
- r8poly3_root.m, returns the three roots of a cubic polynomial.
- r8poly4_root.m, returns the four roots of a quartic polynomial.
- r8r8_print.m, prints an R8R8, that is, a pair of R8's;
- r8vec_even_select.m, returns the I-th of N evenly spaced values;
- r8vec_is_distinct.m, is true if all entries of an R8VEC are distinct;
- r8vec_print.m, prints an R8VEC;
- r8vec_transpose_print.m, prints the "transpose" of an R8VEC.
- roots_to_r8poly.m, converts polynomial roots to polynomial coefficients;