<< me_version | CCA (Computational Convex Analysis) | op_fitz >>

CCA (Computational Convex Analysis) >> CCA (Computational Convex Analysis) > pl_me_generic

# pl_me_generic

Generic Moreau envelope

### Calling Sequence

    [M] = pl_me_generic(X,Y,S)
    [M,p,P] = pl_me_generic(X,Y,S)
    [M,g,Conjpartial,Conj] = pl_me_generic(Xr,Xc,f,Sr,Sc)

### 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.

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)

p

  selection of the proximal mapping, p(j) is in Argmin(||S(j) - X(i)||^2 + f(i) | over all indexes i)

P

  proximal mapping, P(j)=Argmin(||S(j) - X(i)||^2 + f(i) | over all indexes i)

Xr

  column vector of length n.

Xc

  column vector of length m.

f

  matrix of size nxm. The function f is sampled on a grid Xr x Xc so f(i,j)=fu(Xr(i),Xc(j)) for some function fu.

Sr

  column vector of size m1.

Sc

  column vector of size m2. The Moreau envelope is computed on a grid SrxSc.

M

  matrix of size m1xm2 containing the Moreau envelope of the function f.

g

  matrix of size nxm containing the function g (see formula below).

Conjpartial

  matrix containing the partial conjugate of the function g i.e. the one dimensional conjugate applied to each row.

Conj

  matrix of size m1xm2 containing the conjugate of the function g (see pl_me_llt_2d for formula).

### Description

The moreau function is a wrapper for three different moreau envelope computations depending on the calling sequence. The first calling sequence [M] = pl_me_generic(X,Y,S) uses pl_me_llt function for the 1D me computation. The second calling sequence [M,p,P] = pl_me_generic(X,Y,S) uses the pl_me_direct function for the 1D me computation. The last calling sequence [M,g,Conjpartial,Conj] = pl_me_generic(Xr,Xc,f,Sr,Sc) uses pl_me_llt_2d function for the 2D me computation. For a more detailed description see links below.

### Examples

    //Example 1. First Calling Sequence
    X = (1:10)';S = X;
    F=X.^2;
    [M] = pl_me_generic(X, F, S);

    //Example 2. Second Calling Sequence
    X = (1:10)';S = X;
    F=X.^2;
    [M,p,P] = pl_me_generic(X,F,S);

    //Example 3. Third Calling Sequence
    Xr = [1 2.2 3]'; Sr = Xr;
    Xc = [1 2 3]'; Sc = Xc;
    F = [3 100 100;100 100 100;100 100 2 ];
    [MY,g,Conjpartial,Conj] = pl_me_generic(Xr, Xc, F, Sr, Sc);

### See Also

- pl_me_llt
- pl_me_direct
- pl_me_llt_2d

### Authors

`Mike Trienis`, University of British Columbia, BC, Canada

<< me_version | CCA (Computational Convex Analysis) | op_fitz >>