**r8poly**,
an Octave code which
operates on polynomials, including evaluation, differentiation,
integration, multiplication, synthetic division, shifting the
base, computing a power, taking the norm. It also defines
Chebyshev, Lagrange and Legendre polynomials.

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

**r8poly** 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.

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

monomial, an Octave 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, an Octave code which adds, multiplies, differentiates, evaluates and prints multivariate polynomials in a space of M dimensions.

polynomial_multiply, an Octave code which multiplies two polynomials p(x) and q(x).

- 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;