Add lifting steps to lifting scheme

## Syntax

```LSN = addlift(LS,ELS) LSN = addlift(LS,ELS,'begin') LSN = addlift(LS,ELS,'end') addfilt(LS,ELS) ```

## Description

`LSN = addlift(LS,ELS)` returns the new lifting scheme `LSN` obtained by appending the elementary lifting step `ELS` to the lifting scheme `LS`.

`LSN = addlift(LS,ELS,'begin')` prepends the specified elementary lifting step.

`ELS` is either a cell array (see `lsinfo`)

```{TYPEVAL, COEFS, MAX_DEG} ```

or a structure (see `liftfilt`)

```struct('type',TYPEVAL,'value',LPVAL) ```

with

```LPVAL = laurpoly(COEFS, MAX_DEG) ```

`LSN = addlift(LS,ELS,'end')` is equivalent to `addfilt(LS,ELS)`.

If `ELS` is a sequence of elementary lifting steps, stored in a cell array or an array of structures, then each of the elementary lifting steps is added to `LS`.

For more information about lifting schemes, see `lsinfo`.

## Examples

collapse all

This example shows how to start with the Haar lifting scheme and add a primal lifting step.

`LSbegin = liftwave('haar');`

Display the lifting scheme.

`displs(LSbegin);`
```LSbegin = {... 'd' [ -1.00000000]  'p' [ 0.50000000]  [ 1.41421356] [ 0.70710678] [] }; ```

Create a primal lifting step.

`pstep = { 'p', [-1 2 -1]/4 , 1 };`

`LSend = addlift(LSbegin,pstep);`

Display the final lifting scheme.

`displs(LSend);`
```LSend = {... 'd' [ -1.00000000]  'p' [ 0.50000000]  'p' [ -0.25000000 0.50000000 -0.25000000]  [ 1.41421356] [ 0.70710678] [] }; ``` 