* Bug 15922 fixed: rcond([]) returned [] => %inf 75/20675/4
Samuel GOUGEON [Thu, 3 Jan 2019 22:48:34 +0000 (23:48 +0100)]
  http://bugzilla.scilab.org/15922

Change-Id: I5facf8e4a04acb62910533ecf0017ce03ba4dd2a

17 files changed:
scilab/CHANGES.md
scilab/modules/cacsd/macros/dhnorm.sci
scilab/modules/cacsd/macros/h_norm.sci
scilab/modules/compatibility_functions/help/en_US/mtlb_rcond.xml [deleted file]
scilab/modules/compatibility_functions/help/fr_FR/mtlb_rcond.xml [deleted file]
scilab/modules/compatibility_functions/macros/mtlb_rcond.sci [deleted file]
scilab/modules/linear_algebra/help/en_US/matrix/rcond.xml
scilab/modules/linear_algebra/help/fr_FR/matrix/rcond.xml
scilab/modules/linear_algebra/help/ja_JP/matrix/rcond.xml
scilab/modules/linear_algebra/help/pt_BR/matrix/rcond.xml
scilab/modules/linear_algebra/macros/projspec.sci
scilab/modules/linear_algebra/macros/rowshuff.sci
scilab/modules/linear_algebra/sci_gateway/cpp/sci_rcond.cpp
scilab/modules/linear_algebra/tests/unit_tests/rcond.dia.ref [deleted file]
scilab/modules/linear_algebra/tests/unit_tests/rcond.tst
scilab/modules/m2sci/help/en_US/m2sci_equivalents/r/rcond.xml
scilab/modules/m2sci/macros/sci_files/sci_rcond.sci [deleted file]

index 84b27af..fcc5a79 100644 (file)
@@ -256,6 +256,8 @@ input and output arguments.
    - Encoded integers can now be saved in `-v4` format.
 * `sci2exp` now uses `%s` or `%z` in literal expressions of polynomials in `s` or `z`.
 * `min` and `max` hardly worked with sparse-encoded inputs. They are now fully enabled.
+* `cond([])` now yields 0 as `cond([],2)`, instead of 1.
+* `rcond([])` now yields `Inf` instead of `[]`, consistently with `cond([])==0`.
 
 Help pages:
 -----------
@@ -698,6 +700,7 @@ Known issues
 * [#15899](http://bugzilla.scilab.org/show_bug.cgi?id=15899): `tree2code(tree, prettyprint=%t)` ignored the indentation width declared in Scinotes preferences.
 * [#15907](http://bugzilla.scilab.org/show_bug.cgi?id=15907): `filter` was corrupting its input state array
 * [#15920](http://bugzilla.scilab.org/show_bug.cgi?id=15920): genlib() did not regenerate a missing .bin if the .sci was unchanged (Scilab 6 regression)
+* [#15922](http://bugzilla.scilab.org/show_bug.cgi?id=15922): `rcond([])` returned `[]` instead of `Inf` consistently with `cond([])==0`.
 * [#15924](http://bugzilla.scilab.org/show_bug.cgi?id=15924): sparse inequality to 0 yielded a wrong result.
 
 
index 87a0717..0df8336 100644 (file)
@@ -48,10 +48,11 @@ function ok=dhtest(Sl,gama)
     ws=w(:,1:n);
     x12=ws(1:n,:);
     phi12=ws(n+1:2*n,:);
-    if rcond(x12) > 1.d-6 then
-        X=phi12/x12;
-        z=eye()-B'*X*B
-        ok= min(real(spec(z))) > -%eps
+    if rcond(x12) > 1.d-6 & x12<>[] then
+        X = phi12/x12;
+        z = eye()-B'*X*B
+        ok = min(real(spec(z))) > -%eps
     else
-    ok=%t;end
+        ok = %t;
+    end
 endfunction
index 5b1fb77..847c8c0 100644 (file)
@@ -152,10 +152,11 @@ function ok=dhtest(Sl,gama)
     ws=w(:,1:n);
     x12=ws(1:n,:);
     phi12=ws(n+1:2*n,:);
-    if rcond(x12) > 1.d-6 then
-        X=phi12/x12;
-        z=eye()-B'*X*B
-        ok= min(real(spec(z))) > -%eps
+    if rcond(x12) > 1.d-6 & x12<>[] then
+        X = phi12/x12;
+        z = eye()-B'*X*B
+        ok = min(real(spec(z))) > -%eps
     else
-    ok=%t;end
+        ok = %t;
+    end
 endfunction
diff --git a/scilab/modules/compatibility_functions/help/en_US/mtlb_rcond.xml b/scilab/modules/compatibility_functions/help/en_US/mtlb_rcond.xml
deleted file mode 100644 (file)
index f15a272..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-    * Copyright (C) 2004-2007 - INRIA - Vincent COUVERT
-    *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
-    *
-    -->
-<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" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="mtlb_rcond">
-    <refnamediv>
-        <refname>mtlb_rcond</refname>
-        <refpurpose>Matlab rcond emulation function</refpurpose>
-    </refnamediv>
-    <refsection>
-        <title>Description</title>
-        <para>
-            Matlab and Scilab <literal>rcond</literal> behave differently in some particular cases:
-        </para>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    With empty matrix: Matlab <literal>rcond</literal> returns <literal>Inf</literal> and
-                    Scilab <literal>rcond</literal> returns <literal>[]</literal>
-                </para>
-            </listitem>
-        </itemizedlist>
-        <para>
-            The function <literal>mtlb_rcond(A)</literal> is used by
-            <literal>mfile2sci</literal> to replace <literal>rcond(A)</literal> when it was not
-            possible to know what was the input while porting Matlab code to Scilab. This function will
-            determine the correct semantic at run time. If you want to have a
-            more efficient code it is possible to replace <literal>mtlb_rcond</literal> calls:
-        </para>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    If <literal>A</literal> is not an empty matrix,
-                    <literal>mtlb_rcond(A)</literal> may be replaced by <literal>rcond(A)</literal>
-                </para>
-            </listitem>
-        </itemizedlist>
-        <para>
-            <warning>
-                Caution: <literal>mtlb_rcond</literal> has not to be used for hand coded functions.
-            </warning>
-        </para>
-    </refsection>
-</refentry>
diff --git a/scilab/modules/compatibility_functions/help/fr_FR/mtlb_rcond.xml b/scilab/modules/compatibility_functions/help/fr_FR/mtlb_rcond.xml
deleted file mode 100644 (file)
index 0e8317f..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-    * Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-    *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
-    *
-    -->
-<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" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="mtlb_rcond">
-    <refnamediv>
-        <refname>mtlb_rcond</refname>
-        <refpurpose>Fonction d'émulation de la fonction Matlab rcond</refpurpose>
-    </refnamediv>
-    <refsection>
-        <title>Description</title>
-        <para>
-            Dans plusieurs cas particuliers, la fonction <literal>rcond</literal> se comporte différemment dans Matlab et dans Scilab :
-        </para>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Avec une matrice vide : La fonction Matlab <literal>rcond</literal> retourne <literal>Inf</literal>
-                    et Scilab retourne <literal>[]</literal>
-                </para>
-            </listitem>
-        </itemizedlist>
-        <para>
-            La fonction <literal>mtlb_rcond(A)</literal> est utilisée par
-            <literal>mfile2sci</literal> pour remplacer <literal>rcond(A)</literal> quand il n'était pas
-            possible de savoir ce qu'était le paramètre d'entrée pendant la conversion d'un code Matlab vers Scilab. Cette fonction va
-            déterminer la sémantique correcte pendant l'exécution. Pour obtenir un code plus performant
-            on peut remplacer les appels à <literal>mtlb_rcond</literal> :
-        </para>
-        <itemizedlist>
-            <listitem>
-                <para>
-                    Si <literal>A</literal> n'est pas une matrice vide
-                    <literal>mtlb_rcond(A)</literal> peut être remplacé par <literal>rcond(A)</literal>
-                </para>
-            </listitem>
-        </itemizedlist>
-        <para>
-            <warning>
-                Attention : <literal>mtlb_rcond</literal> ne doit pas être utilisée pour une programmation manuelle.
-            </warning>
-        </para>
-    </refsection>
-</refentry>
diff --git a/scilab/modules/compatibility_functions/macros/mtlb_rcond.sci b/scilab/modules/compatibility_functions/macros/mtlb_rcond.sci
deleted file mode 100644 (file)
index f984924..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-function c=mtlb_rcond(a)
-    // Emulation function for rcond() Matlab function
-
-    if isempty(a) then
-        c=%inf
-    else
-        c=rcond(a)
-    end
-endfunction
index c935e6c..6baabe1 100644 (file)
@@ -3,7 +3,6 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
  * Copyright (C) 2010 - DIGITEO - Michael Baudin
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * along with this program.
  *
  -->
-<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" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="rcond">
+<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" xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="rcond">
     <refnamediv>
         <refname>rcond</refname>
         <refpurpose>inverse condition number</refpurpose>
@@ -62,7 +64,7 @@
             with Lapack/DGETRF, and finally estimate the condition with Lapack/DGECON.
         </para>
         <para>
-          <literal>rcond([])</literal> returns <literal>[]</literal>.
+          <literal>rcond([])</literal> yields <literal>%inf</literal>.
         </para>
     </refsection>
     <refsection>
@@ -94,4 +96,15 @@ rcond(A)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    rcond([]) now yields %inf = 1/cond([]) instead of [].
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 7c54a41..1e03f1b 100644 (file)
@@ -3,7 +3,6 @@
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
  * Copyright (C) 2010 - DIGITEO - Michael Baudin
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * along with this program.
  *
  -->
-<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" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="rcond">
+<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" xmlns:scilab="http://www.scilab.org"
+          xml:lang="fr" xml:id="rcond">
     <refnamediv>
         <refname>rcond</refname>
         <refpurpose>inverse estimé du conditionnement d'une matrice</refpurpose>
@@ -65,7 +67,7 @@
             avec Lapack/DGECON.
         </para>
         <para>
-          <literal>rcond([])</literal> vaut <literal>[]</literal>.
+          <literal>rcond([])</literal> vaut <literal>%inf</literal>.
         </para>
     </refsection>
     <refsection>
@@ -97,4 +99,15 @@ rcond(A)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    rcond([]) produit désormais %inf = 1/cond([]) au lieu de [].
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 0b57335..4bc7d14 100644 (file)
@@ -2,7 +2,6 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
- *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * along with this program.
  *
  -->
-<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" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="rcond">
+<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" xmlns:scilab="http://www.scilab.org"
+          xml:lang="ja" xml:id="rcond">
     <refnamediv>
         <refname>rcond</refname>
         <refpurpose>条件数の逆数</refpurpose>
@@ -62,7 +64,7 @@
             最後に条件をLapack/DGECONで推定します.
         </para>
         <para>
-          <literal>rcond([])</literal> returns <literal>[]</literal>.
+          <literal>rcond([])</literal> yields <literal>%inf</literal>.
         </para>
 
     </refsection>
@@ -95,4 +97,15 @@ rcond(A)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>履歴</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    rcond([]) now yields %inf = 1/cond([]) instead of [].
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
\ No newline at end of file
index 29a8280..d7a1e3d 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="rcond" xml:lang="pt">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="rcond" xml:lang="pt">
     <refnamediv>
         <refname>rcond</refname>
         <refpurpose>número de condicionamento inverso</refpurpose>
@@ -64,6 +67,9 @@
             de LU é calculada com Lapack / DGETRF. Finalmente, a condição é avaliada com
             Lapack / DGECON.
         </para>
+        <para>
+          <literal>rcond([])</literal> produz <literal>%inf</literal>.
+        </para>
     </refsection>
     <refsection>
         <title>Exemplos</title>
@@ -94,4 +100,15 @@ rcond(A)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Histórico</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    rcond([]) now yields %inf = 1/cond([]) instead of [].
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 5dac197..f086336 100644 (file)
@@ -27,16 +27,16 @@ function [S,P,D,index]=projspec(A,tol)
         P=eye(A),D=A,S=0*P;index=1;
     end
     //     nonsingular A:  index 0
-    if rcond(A) > tol
+    if rcond(A) > tol & A<>[]
         S=inv(A),P=0*eye(A);D=P;index=0;return;
     end;
     //write(%io(2),'    rank A^k    rcond')
     //                    index 1
     index=1;
     [B,C,dim]=fullrf(A);
-    if dim==0
+    if dim==0   // includes the A==[] case
         P=eye(n,n);S=0*P;D=A;return
-    end;
+    end
     Ck=C;Bk=B;//write(%io(2),[dim,rcond(C*B)],'(7x,f3.0,6x,e9.3)');
     tst=rcond(Ck*Bk);
     if size(Ck,1)==1 then tst=norm(Ck*Bk,1);end
index 3061bd2..5a8f604 100644 (file)
@@ -23,12 +23,18 @@ function [Ws,Fs1]=rowshuff(Fs,alfa)
     if RHS==1 then
         alfa=0;
     end
+    Fs1 = Fs;
     [E,A]=pen2ea(Fs);
     //     E is non singular: --> exit
-    if rcond(E) >= 1.d-5 then W=eye(E);Fs1=Fs;return;end
+    if rcond(E) >= 1.d-5 then   // includes the Fs==[] case
+        W = eye(E);
+        return
+    end
     //     E is singular:
-    s=poly(0,"s");tol=1.d-10*(norm(E,1)+norm(A,1));
-    [n,n]=size(E);Ws=eye(n,n);
+    s = poly(0,"s");
+    tol = 1.d-10*(norm(E,1)+norm(A,1));
+    [n,n] = size(E);
+    Ws = eye(n,n);
     //
     rk=0;i=0;
     while rk  < n
@@ -37,7 +43,9 @@ function [Ws,Fs1]=rowshuff(Fs,alfa)
             W=[];
         end
         [W,rk]=rowcomp(E);
-        if rk==n then return;end
+        if rk==n then
+            return
+        end
         W1=W(1:rk,:);W2=W(rk+1:n,:);
         E=[W1*E;
         -W2*A];
index 20cc6e4..d40eeb1 100644 (file)
@@ -57,7 +57,7 @@ types::Function::ReturnValue sci_rcond(types::typed_list &in, int _iRetCount, ty
 
     if (pDbl->getRows() == 0)
     {
-        out.push_back(types::Double::Empty());
+        out.push_back(new types::Double(INFINITY));
         return types::Function::OK;
     }
     else if (pDbl->getRows() == -1) // manage eye case
diff --git a/scilab/modules/linear_algebra/tests/unit_tests/rcond.dia.ref b/scilab/modules/linear_algebra/tests/unit_tests/rcond.dia.ref
deleted file mode 100644 (file)
index 2d5b1e0..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA Michael Baudin
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-function r=Err(x),r=norm(x,1),endfunction
-rand('normal')
-//==========================================================================
-//==============================    rcond     ============================== 
-//==========================================================================
-//Empty matrix
-A=[];
-if rcond(A)<>[] then bugmes();quit;end
-//Rectangular matrix
-if execstr('rcond(rand(2,3))','errcatch')==0 then bugmes();quit;end
-if execstr('rcond(rand(2,3)+%i*eye())','errcatch')==0 then bugmes();quit;end
-//Small dimension
-//---------------
-//Real Case
-if Err(rcond(eye(5,5))-1)>10*%eps then bugmes();quit;end
-//Complex Case
-if  Err(rcond(eye(5,5)*(1+%i))-1)>10*%eps then bugmes();quit;end
-//Large dimension
-//---------------
-//Real Case
-if Err(rcond(eye(50,50))-1)>10*%eps then bugmes();quit;end
-//Complex Case
-if  Err(rcond(eye(50,50)*(1+%i))-1)>10*%eps then bugmes();quit;end
index 68c768d..48be3d2 100644 (file)
@@ -1,4 +1,5 @@
 //<-- CLI SHELL MODE -->
+//<-- NO CHECK REF -->
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ????-2008 - INRIA Michael Baudin
@@ -9,11 +10,10 @@ function r=Err(x),r=norm(x,1),endfunction
 rand('normal')
 
 //==========================================================================
-//==============================    rcond     ============================== 
+//==============================    rcond     ==============================
 //==========================================================================
 //Empty matrix
-A=[];
-if rcond(A)<>[] then pause,end
+assert_checkequal(rcond([]), %inf)
 
 //Rectangular matrix
 if execstr('rcond(rand(2,3))','errcatch')==0 then pause,end
index 074ebc9..8506f2b 100644 (file)
  * along with this program.
  *
  -->
-<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" xmlns:scilab="http://www.scilab.org" xml:id="m2sci_rcond">
+<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" xmlns:scilab="http://www.scilab.org"
+          xml:id="m2sci_rcond">
     <refnamediv>
         <refname>rcond (Matlab function)</refname>
         <refpurpose>Matrix reciprocal condition number estimate</refpurpose>
@@ -43,37 +46,4 @@ rcond
             </tr>
         </informaltable>
     </refsection>
-    <refsection>
-        <title>Particular cases</title>
-        <para>
-            Scilab and Matlab values differ for empty matrix.
-        </para>
-    </refsection>
-    <refsection>
-        <title>Examples</title>
-        <informaltable border="1" width="100%">
-            <tr>
-                <td align="center">
-                    <emphasis role="bold">Matlab</emphasis>
-                </td>
-                <td align="center">
-                    <emphasis role="bold">Scilab</emphasis>
-                </td>
-            </tr>
-            <tr>
-                <td>
-                    <programlisting role="example"><![CDATA[
-c = rcond([])
-c = Inf
-]]></programlisting>
-                </td>
-                <td>
-                    <programlisting role="example"><![CDATA[
-c = rcond([])
-c = []
-]]></programlisting>
-                </td>
-            </tr>
-        </informaltable>
-    </refsection>
 </refentry>
diff --git a/scilab/modules/m2sci/macros/sci_files/sci_rcond.sci b/scilab/modules/m2sci/macros/sci_files/sci_rcond.sci
deleted file mode 100644 (file)
index e3a2ad2..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-function [tree]=sci_rcond(tree)
-    // M2SCI function
-    // Conversion function for Matlab rcond()
-    // Input: tree = Matlab funcall tree
-    // Ouput: tree = Scilab equivalent for tree
-    // Emulation function: mtlb_rcond()
-
-    A = getrhs(tree)
-    A = convert2double(A)
-    tree.rhs=Rhs_tlist(A)
-
-    // If A can be an empty matrix...
-    if ~not_empty(A) then
-        tree.name="mtlb_rcond"
-
-        tree.lhs(1).dims=list(1,1)
-        tree.lhs(1).type=Type(Double,Real)
-    end
-endfunction