r8poly
    
    
    
      r8poly,
      a MATLAB code which
      operates on real 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.
    
    
      Licensing:
    
    
      The information on this web page is distributed under the MIT license.
    
    
      Languages:
    
    
      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.
    
    
      Related Data and Programs:
    
    
      
      r8poly_test
    
    
      
      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.
    
    
      
      polynomial_multiply,
      a MATLAB code which
      multiplies two polynomials p(x) and q(x).
    
    
      
      polynomial_resultant,
      a MATLAB code which
      computes the resultant R of univariate polynomials P and Q.
    
    
      Source Code:
    
    
      
        - 
          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.
        
 
        - 
          r8poly4_discriminant.m,
          returns the discriminant 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;
        
 
      
    
    
    
      Last revised on 24 October 2019.