Bug 3643 fixed, mtlb_eig is now obsolete
Vincent COUVERT [Tue, 10 Mar 2009 15:18:21 +0000 (16:18 +0100)]
scilab/CHANGES_5.1.X
scilab/modules/compatibility_functions/help/en_US/mtlb_eig.xml
scilab/modules/compatibility_functions/help/fr_FR/mtlb_eig.xml
scilab/modules/compatibility_functions/macros/mtlb_eig.sci
scilab/modules/m2sci/macros/sci_files/sci_eig.sci
scilab_doc/Matlab_Scilab_dictionary/eig.xml

index 731624b..060a13c 100644 (file)
@@ -55,6 +55,9 @@ Internal API:
 Bug fixes:
 ==========
 
+* bug 3643 fixed - Scilab spec function is the equivalent of Matlab function 
+                   (mtlb_eig is now obsolete).
+
 * bug 3944 fixed - ilib_mex_build() wasn't using the content of the  
                   variable tables to compile other files
 * bug 3945 fixed - Error with the help example of library()
index 0a70450..796dd76 100644 (file)
   </refnamediv>
   <refsection>
     <title>Description</title>
-    <para>Matlab <literal>eig</literal> and Scilab <literal>spec</literal> behave differently in some particular cases:</para>
-    <itemizedlist>
-      <listitem>
-        <para>
-       With one input (A) and two outputs (V,D), Matlab and Scilab returned eigen values have opposite signs.
-         </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-    The function <literal>[V,D] = mtlb_eig(A)</literal> is used by
-    <literal>mfile2sci</literal> to replace <literal>&gt;[V,D] = eig(A)</literal>.
-    This function will determine the correct semantic at run time. There is no replacement possibility for it.
-    </para>
-    <para>Caution: <literal>mtlb_eig</literal> has not to be used for hand coded functions.</para>
+    <para>WARNING: This function is obsolete and will be removed in version 5.1.2, please use <link linkend="spec">spec</link> instead.</para>
+  </refsection>
+  <refsection>
+    <title>See Also</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="spec">spec</link>
+      </member>
+    </simplelist>
   </refsection>
   <refsection>
     <title>Authors</title>
index e4ff522..57b2e78 100644 (file)
   </refnamediv>
   <refsection>
     <title>Description</title>
-    <para>Dans plusieurs cas particuliers, les fonctions <literal>eig</literal> de Matlab et <literal>spec</literal>
-    de Scilab se comportent différemment :</para>
-    <itemizedlist>
-      <listitem>
-        <para>
-        Avec un argument d'entrée (<literal>A</literal>) et deux arguments de sortie (<literal>V</literal>,<literal>D</literal>),
-       les valeurs obtenues dans Scilab et dans Matlab sont de signe opposé.
-        </para>
-      </listitem>
-    </itemizedlist>
-    <para>
-    La fonction <literal>[V,D] = mtlb_eig(A,B)</literal> est utilisée par
-    <literal>mfile2sci</literal> pour remplacer <literal>[V,D] = eig(A)</literal>. Cette fonction va
-    déterminer la sémantique correcte pendant l'exécution. Elle ne peut être remplacée.
-    </para>
-    <para>Attention : <literal>mtlb_eig</literal> ne doit pas être utilisée pour une programmation manuelle.</para>
+    <para>ATTENTION: Cette fonction est obsolète et sera retirée dans la version 5.1.2, veuillez utiliser <link linkend="spec">spec</link> en remplacement.</para>
+  </refsection>
+  <refsection>
+    <title>Voir aussi</title>
+    <simplelist type="inline">
+      <member>
+        <link linkend="spec">spec</link>
+      </member>
+    </simplelist>
   </refsection>
   <refsection>
     <title>Auteurs</title>
index 1477542..4c7f9cf 100644 (file)
@@ -10,6 +10,8 @@
 function [vd,D]=mtlb_eig(A,B)
 // Emulation function for eig() Matlab function
 
+warnobsolete("spec", "5.1.2")
+
 [lhs,rhs]=argn()
 
 if rhs==1 then
@@ -17,9 +19,6 @@ if rhs==1 then
     vd=spec(A)
   else
     [vd,D]=spec(A)
-    if isreal(vd,0) & size(vd,"*")>1 then
-      vd(:,1:2)=-vd(:,1:2)
-    end
   end  
 else
   error(msprintf(gettext("%s: use with %d input argument(s) is not yet implemented.\n"),"mtlb_eig",2));
index b852839..1d8b60a 100644 (file)
@@ -12,7 +12,6 @@ function [tree]=sci_eig(tree)
 // Conversion function for Matlab eig()
 // Input: tree = Matlab funcall tree
 // Ouput: tree = Scilab equivalent for tree
-// Emulation function: mtlb_eig()
 
 // eig(A)
 if rhs==1 then
@@ -21,15 +20,14 @@ if rhs==1 then
   A = convert2double(A)
   tree.rhs=Rhs_tlist(A)
 
+  tree.name="spec"
+  
   // d = eig(A)
   if lhs==1 then
-    tree.name="spec"
     tree.lhs(1).dims=list(A.dims(1),1)
     tree.lhs(1).type=Type(Double,Unknown)
   // [V,D] = eig(A)
   else
-    set_infos(msprintf(gettext("mtlb_eig() called because Scilab and Matlab value do not always match for %s."),tree.lhs(1).name),0)
-    tree.name="mtlb_eig"
     tree.lhs(1).dims=list(A.dims(1),A.dims(1))
     tree.lhs(1).type=Type(Double,Unknown)
     tree.lhs(2).dims=list(A.dims(1),A.dims(1))
index a22da3f..e293976 100644 (file)
@@ -47,27 +47,15 @@ bdiag
     <title>Particular cases</title>
     <variablelist>
       <varlistentry>
-        <term>eig(A)</term>
-        <listitem>
-          <para>
-Scilab equivalent for <emphasis role="bold">eig(A)</emphasis> is <emphasis role="bold">spec(A)</emphasis>. Scilab eigen vector matrix can differ from Matlab one...
-</para>
-        </listitem>
-      </varlistentry>
-      <varlistentry>
         <term>eig(A,'nobalance')</term>
         <listitem>
-          <para>
-There is no Scilab equivalent for <emphasis role="bold">'nobalance'</emphasis> option. See examples...
-</para>
+          <para>There is no Scilab equivalent for <emphasis role="bold">'nobalance'</emphasis> option. See examples...</para>
         </listitem>
       </varlistentry>
       <varlistentry>
         <term>eig(A,B,flag)</term>
         <listitem>
-          <para>
-There is no Scilab equivalent for <emphasis role="bold">flag</emphasis>.
-</para>
+          <para>There is no Scilab equivalent for <emphasis role="bold">flag</emphasis>.</para>
         </listitem>
       </varlistentry>
     </variablelist>