M2SCI function
Last update : 12/10/2006

mtlb_legendre - Matlab legendre emulation function

### Calling Sequence

  `P = mtlb_legendre(n,X)`
  `P = mtlb_legendre(n,X[,normflag])`

### Parameters

- `X`: a scalar, vector, matrix or hypermatrix with elements in [-1,1]

- `n`: a positive scalar integer

- `normflag`: a string ('sch' or 'norm')

### Description

Matlab and Scilab `legendre` behave differently in some particular cases:

  - Scilab `legendre(m,n,X)` evaluates the `legendre` function of degree n and order n for the `X` elements. Matlab `legendre(n,X)` evaluates the Legendre functions of degree `n` and order `m`=0,1,...,n. (emulated by mtlb_legendre) for the `X` elements.
  - The option normflag= `'sch'` doesn't exist for Scilab legendre (emulated)
  - If `X` is a hypermatrix then Scilab `legendre(n,X)` doesn't work (emulated)

The function `mtlb_legendre(n,X[,normflag])` is used by `mfile2sci` to replace `legendre(n,X[,normflag])` when it was not possible to know what were the inputs while porting Matlab code to Scilab. This function will determine the correct semantic at run time. If you want to have a more efficient code it is possible to replace `mtlb_legendre` call:

  - If `X` is a scalar, a vector or a matrix `mtlb_legendre(n,X[,'norm'])` may be replaced by `legendre(n,0:n,X[,'norm'])`

Caution: `mtlb_legendre` has not to be used for hand coded functions.

### Authors

  F.B.