<< pl_me_direct_2d pl pl_me_llt >>

CCA (Computational Convex Analysis) >> pl > 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

Authors

Mike Trienis, University of British Columbia, BC, Canada

<< pl_me_direct_2d pl pl_me_llt >>