<< pl_me_generic | pl | pl_me_llt_2d >>

CCA (Computational Convex Analysis) >> pl > pl_me_llt

# pl_me_llt

Moreau envelope, LLT algorithm

### Calling Sequence

    M = pl_me_llt(X,f,S,fusionopt)

### Parameters

X

  column vector. A grid of points on which the function is sampled.

f

  column vector. The value of the function on the grid X: usually f(i)=fu(X(i)) for some function fu.

S

  column vector. The grid on which we want to compute the conjugate: f* is evaluated on S.

fusionopt

  Optional. integer. Select the implementation of the fusion algorithm. fusionopt=1 (or omitted) selects _pl_fusionsci, a fast implementation using scilab syntax but with nonlinear complexity. Any over value selects the _pl_fusion implementation, a (slower) loop-based implementation that runs in linear-time.

M

  column vector. Contains the value of the Moreau envelope M of the function f evaluated on at the points S(j). In other words: M(j) = Min(||S(j) - X(i)||^2 + f(i) | over all indexes i)

### Description

Compute numerically the discrete Moreau envelope of a set of planar points (X(i),f(i)) at slopes S(j), i.e.

It reduces computation to computing the Legendre conjugate through the formula

Thereby resulting in a theta(n + m) linear-time algorithm with n=length(X)=length(f) and m=length(S).

### Examples

    X=[-5:0.5:5]';
    Y=X.^2;
    S=(Y(2:size(Y,1))-Y(1:size(Y,1)-1))./(X(2:size(X,1))-X(1:size(X,1)-1));
    M=pl_me_llt(X,Y,S)

### See Also

- pl_me_llt_2d
- pl_me_direct
- pl_me_nep
- pl_me_pe

### Authors

`Yves Lucet`, University of British Columbia, BC, Canada

### Used Functions

The core computation is done by pl_lft_llt.

<< pl_me_generic | pl | pl_me_llt_2d >>