## The ppform

### Introduction to ppform

A univariate piecewise polynomial f is specified by its break sequence `breaks` and the coefficient array `coefs` of the local power form (see equation in Definition of ppform) of its polynomial pieces; see Multivariate Tensor Product Splines for a discussion of multivariate piecewise-polynomials. The coefficients may be (column-)vectors, matrices, even ND-arrays. For simplicity, the present discussion deals only with the case when the coefficients are scalars.

The break sequence is assumed to be strictly increasing,

```breaks(1) < breaks(2) < ... < breaks(l+1) ```

with `l` the number of polynomial pieces that make up f.

While these polynomials may be of varying degrees, they are all recorded as polynomials of the same order `k`, i.e., the coefficient array `coefs` is of size `[l,k]`, with `coefs(j,:)` containing the `k` coefficients in the local power form for the `j`th polynomial piece, from the highest to the lowest power; see equation in Definition of ppform.

### Definition of ppform

The items `breaks`, `coefs`, `l`, and` k`, make up the ppform of f, along with the dimension `d` of its coefficients; usually `d` equals 1. The basic interval of this form is the interval [`breaks(1) `.. `breaks(l+1)`]. It is the default interval over which a function in ppform is plotted by the plot command `fnplt`.

In these terms, the precise description of the piecewise-polynomial f is

 `f(t) = polyval(coefs(j,:), t - breaks(j)) ` (1)

for breaks(j)≤t<breaks(j+1).

Here, `polyval`(`a`,`x`) is the MATLAB® function; it returns the number

`$\sum _{j=1}^{k}a\left(j\right){x}^{k-j}=a\left(1\right){x}^{k-1}+a\left(2\right){x}^{k-2}+...+a\left(k\right){x}^{0}$`

This defines f(t) only for t in the half-open interval `[breaks(1)..breaks(l+1)]`. For any other t, f(t) is defined by

`$\begin{array}{cc}f\left(t\right)=polyval\left(coefs\left(j,:\right),t-breaks\left(j\right)\right)& \begin{array}{cc}j=& \begin{array}{c}1,t`

i.e., by extending the first, respectively last, polynomial piece. In this way, a function in ppform has possible jumps, in its value and/or its derivatives, only across the interior breaks, `breaks(2:l)`. The end breaks, `breaks([1,l+1])`, mainly serve to define the basic interval of the ppform.