2D Legendre-Fenchel conjugate, LLT algorithm
Conj = pl_lft_llt_2d (Xr, Xc, f, Sr, Sc) Conj = pl_lft_llt_2d (Xr, Xc, f, Sr, Sc, isConvex)
column vector of length n.
column vector of length m.
matrix of size nxm. The function f is sampled on a grid Xr x Xc so f(i,j)=ff(Xr(i),Xc(j)) for some function ff.
column vector of size m1.
column vector of size m2. The Conjugate is computed on a grid SrxSc.
Boolean, optional. Whether or not the given function is known to be true. Defaults to false. It is passed to pl_lft_llt.
matrix of size m1xm2 containing the Conjugate of the function f.
Numerically compute the discrete Legendre transform on the grid Sr x Sc, given a function f(x,y) defined on a grid Xr x Xc, using the LLT1d algorithm to compute the conjugate in one dimension, then to compute it in the other dimension. If n==length(Xr)==length(Xc)==length(Sr)==length(Sc), this function calls LLT1d n times in one dimension and then n times in the other dimension (2*n^2), giving a linear running time with respect to the O(n^2) input size.
The conjugate of a function in R^2 can be factored to several conjugates which are elements of R.
Mike Trienis
, University of British Columbia, BC, Canada
pl_lft_llt is called twice, once for each dimension.