<?xml version="1.0" encoding="ISO-8859-1"?><refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="pl_me_llt"><info><pubdate>04-Apr-2006</pubdate></info><refnamediv><refname>pl_me_llt</refname><refpurpose>Moreau envelope, LLT algorithm</refpurpose></refnamediv>
  
   
  
   
  
   
  
   
  
   

  
   <refsynopsisdiv><title>Calling Sequence</title><synopsis>M = pl_me_llt(X,f,S,fusionopt)</synopsis></refsynopsisdiv>

  
   <refsection><title>Parameters</title>
  
      <variablelist>

    
         <varlistentry>
    
            <term>X</term>
    
            <listitem>
       
               <para>column vector. A grid of points on which the function is sampled.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>f</term>
    
            <listitem>
       
               <para>column vector. The value of the function on the grid X: usually f(i)=fu(X(i)) for some function fu.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>S</term>
    
            <listitem>
       
               <para>column vector. The grid on which we want to compute the conjugate: f* is evaluated on S.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
	    
            <term>fusionopt</term>
	    
            <listitem>
		    
               <para>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.
		    </para>
	    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>M</term>
    
            <listitem>
       
               <para>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)
       </para>
    
            </listitem>
    
         </varlistentry>
  
      </variablelist>
  
   </refsection>
 
  
   <refsection><title>Description</title>
     
         <para>
	Compute numerically the discrete Moreau envelope of a set of planar points (X(i),f(i)) at slopes S(j), i.e. <!--<programlisting><![CDATA[
                                          2
       M(j) = min f(i) + || s(j) - x(i) ||.
               i
]]></programlisting>-->
			<para>
				<inlinemediaobject>
					<imageobject>
						<imagedata fileref="pl_ImagesOfEquationsByLatex/pl_me_llt/pl_me_llt_1.png"/>
					</imageobject>
				</inlinemediaobject>
			</para>
	<para>It reduces computation to computing the Legendre conjugate through the formula</para> <!--<programlisting><![CDATA[
           2                                                      2
M(j) = s(j) - 2 g*(j) with g*(j) = max [ s(j) * x(i) - 1/2 * (x(i) +  f(i)) ]
                                    i
]]></programlisting>-->
			<para>
				<inlinemediaobject>
					<imageobject>
						<imagedata fileref="pl_ImagesOfEquationsByLatex/pl_me_llt/pl_me_llt_2.png"/>
					</imageobject>
				</inlinemediaobject>
			</para>
	<para>Thereby resulting in a theta(n + m) linear-time algorithm with n=length(X)=length(f) and m=length(S). </para>
	</para>
  
   </refsection>

  
   <refsection><title>Examples</title><programlisting role="example"><![CDATA[
    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)
]]></programlisting></refsection>

  
   <refsection><title>See Also</title><simplelist type="inline">
	
      <member> 
         <link linkend="pl_me_llt_2d">pl_me_llt_2d</link> 
      </member>    
	
      <member> 
         <link linkend="pl_me_direct">pl_me_direct</link> 
      </member>
    	
      <member> 
         <link linkend="pl_me_nep">pl_me_nep</link> 
      </member>
	
      <member> 
         <link linkend="pl_me_pe">pl_me_pe</link> 
      </member>
  
   </simplelist></refsection>

  
   <refsection><title>Authors</title><para>
	  
      <literal>Yves Lucet</literal>, University of British Columbia, BC, Canada
  </para></refsection>

  
   

  
   <refsection><title>Used Functions</title>
     
      <para>
     The core computation is done by <link linkend="pl_lft_llt">pl_lft_llt</link>.
     </para>
  
   </refsection>

</refentry>
