# horner

polynomial/rational evaluation

## Calling Sequence

    horner(P,x)

## Arguments

P

  polynomial or rational matrix

x

  array of numbers or polynomials or rationals

## Description

evaluates the polynomial or rational matrix `P = P(s)` when the variable `s` of the polynomial is replaced by `x`:

`horner(P,x)`=`P(x)`

Example (Bilinear transform): Assume `P = P(s)` is a rational matrix then the rational matrix `P((1+s)/(1-s))` is obtained by `horner(P,(1+s)/(1-s))`.

To evaluate a rational matrix at given frequencies use preferably the `freq` primitive.

## Examples

    //evaluation of a polynomial for a vector of numbers
    P=poly(1:3,'x')
    horner(P,[1 2 5])
    horner(P,[1 2 5]+%i)

    //evaluation of a rational
    s=poly(0,'s');M=[s,1/s];
    horner(M,1)
    horner(M,%i)
    horner(M,1/s)

    //evaluation of a polynomial for a matrix of numbers
    X= [1 2;3 4]
    p=poly(1:3,'x','c')
    m=horner(p, X)
    1*X.^0+2*X.^1+3*X.^2

## See Also

- freq
- repfreq
- evstr