* Bug 15360: denom() and numer() declared obsolete 50/19650/6
Samuel GOUGEON [Sun, 7 Jan 2018 00:33:33 +0000 (01:33 +0100)]
  http://bugzilla.scilab.org/15360

Change-Id: Ie62f2595506408f1390cdbab94f964fd827c6b1f

59 files changed:
scilab/CHANGES.md
scilab/modules/cacsd/help/en_US/control_design/pole_placement/krac2.xml
scilab/modules/cacsd/help/en_US/linear_system_representation/pol2des.xml
scilab/modules/cacsd/help/fr_FR/linear_system_representation/pol2des.xml
scilab/modules/cacsd/help/ja_JP/control_design/pole_placement/krac2.xml
scilab/modules/cacsd/help/ja_JP/linear_system_representation/pol2des.xml
scilab/modules/cacsd/help/pt_BR/linear_system_representation/pol2des.xml
scilab/modules/cacsd/help/ru_RU/linear_system_representation/pol2des.xml
scilab/modules/cacsd/macros/kpure.sci
scilab/modules/cacsd/macros/nyquistfrequencybounds.sci
scilab/modules/cacsd/macros/routh_t.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_12174.dia.ref [deleted file]
scilab/modules/cacsd/tests/nonreg_tests/bug_12174.tst
scilab/modules/cacsd/tests/nonreg_tests/bug_3323.dia.ref [deleted file]
scilab/modules/cacsd/tests/nonreg_tests/bug_3323.tst
scilab/modules/cacsd/tests/nonreg_tests/bug_6829.dia.ref [deleted file]
scilab/modules/cacsd/tests/nonreg_tests/bug_6829.tst
scilab/modules/cacsd/tests/unit_tests/lft.dia.ref [deleted file]
scilab/modules/cacsd/tests/unit_tests/lft.tst
scilab/modules/cacsd/tests/unit_tests/routh_t.dia.ref [deleted file]
scilab/modules/cacsd/tests/unit_tests/routh_t.tst
scilab/modules/core/tests/unit_tests/scal_vect_mat.dia.ref [deleted file]
scilab/modules/core/tests/unit_tests/scal_vect_mat.tst
scilab/modules/elementary_functions/tests/unit_tests/repmat.dia.ref [deleted file]
scilab/modules/elementary_functions/tests/unit_tests/repmat.tst
scilab/modules/linear_algebra/tests/unit_tests/det.dia.ref [deleted file]
scilab/modules/linear_algebra/tests/unit_tests/det.tst
scilab/modules/overloading/macros/%r_simp.sci
scilab/modules/overloading/tests/nonreg_tests/bug_13893.dia.ref [deleted file]
scilab/modules/overloading/tests/nonreg_tests/bug_13893.tst
scilab/modules/polynomials/demos/intro/poly.intro.dem.sce
scilab/modules/polynomials/help/en_US/denom.xml
scilab/modules/polynomials/help/en_US/ldiv.xml
scilab/modules/polynomials/help/en_US/numer.xml
scilab/modules/polynomials/help/en_US/residu.xml
scilab/modules/polynomials/help/en_US/sfact.xml
scilab/modules/polynomials/help/fr_FR/denom.xml
scilab/modules/polynomials/help/fr_FR/ldiv.xml
scilab/modules/polynomials/help/fr_FR/numer.xml
scilab/modules/polynomials/help/fr_FR/residu.xml
scilab/modules/polynomials/help/fr_FR/sfact.xml
scilab/modules/polynomials/help/ja_JP/denom.xml
scilab/modules/polynomials/help/ja_JP/ldiv.xml
scilab/modules/polynomials/help/ja_JP/numer.xml
scilab/modules/polynomials/help/ja_JP/residu.xml
scilab/modules/polynomials/help/ja_JP/sfact.xml
scilab/modules/polynomials/help/pt_BR/denom.xml
scilab/modules/polynomials/help/pt_BR/ldiv.xml
scilab/modules/polynomials/help/pt_BR/numer.xml
scilab/modules/polynomials/help/pt_BR/residu.xml
scilab/modules/polynomials/help/pt_BR/sfact.xml
scilab/modules/polynomials/macros/denom.sci
scilab/modules/polynomials/macros/numer.sci
scilab/modules/polynomials/tests/unit_tests/polelm.dia.ref [deleted file]
scilab/modules/polynomials/tests/unit_tests/polelm.tst
scilab/modules/signal_processing/macros/%_filter.sci
scilab/modules/signal_processing/tests/nonreg_tests/bug_9851.dia.ref [deleted file]
scilab/modules/signal_processing/tests/nonreg_tests/bug_9851.tst
scilab/modules/slint/src/cpp/DeprecatedChecker.cpp

index d67165f..5296c34 100644 (file)
@@ -317,6 +317,8 @@ Obsolete functions or features
 * `lstsize` is obsolete and will be removed in Scilab 6.1. Please use `size` instead.
 * `eval` is obsolete and will be removed in Scilab 6.1. Please use `evstr` instead.
 * `dgettext` is obsolete and will be removed in Scilab 6.1. Please use `gettext(domain, text)` instead.
+* `denom` is obsolete and will be removed in Scilab 6.1. Please use the `.den` rational attribute instead.
+* `numer` is obsolete and will be removed in Scilab 6.1. Please use the `.num` rational attribute instead.
 
 
 Removed Functions
@@ -509,6 +511,7 @@ Known issues
 * [#15342](http://bugzilla.scilab.org/show_bug.cgi?id=15342): `replot()` and `Reframe to contents` failed on graphics with xstring objects.
 * [#15347](http://bugzilla.scilab.org/show_bug.cgi?id=15347): `toeplitz` failed with rationals.
 * [#15354](http://bugzilla.scilab.org/show_bug.cgi?id=15354): `invr(%s^2)` returned 0 instead of `1/%s^2`. For any scalar number, polynomial or rational `a`, `coffg(a)` returned `0` instead of `1`. `coffg([])` yielded an error. `invr` and `coffg` had no unitary tests. The `coffg` help page was inaccurate and unclear.
+* [#15360](http://bugzilla.scilab.org/show_bug.cgi?id=15360): `numer()` and `denom()` were almost useless, unused, and with more handy replacements. They are declared obsolete to be removed in Scilab 6.1.0.
 * [#15375](http://bugzilla.scilab.org/show_bug.cgi?id=15375): A .zcos file opened as a palette was greyed out.
 
 
index e8b7115..8e682ef 100644 (file)
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-h=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-clf();evans(h,100)
-g=krac2(h)
-hf1=h/.g(1);roots(denom(hf1))
-hf2=h/.g(2);roots(denom(hf2))
+h = syslin('c', 352*poly(-5,'s') / poly([0,0,2000,200,25,1],'s','c'));
+clf
+evans(h,100)
+g = krac2(h)
+hf1 = h/.g(1); roots(hf1.den)
+hf2 = h/.g(2); roots(hf2.den)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index f78fe78..6398d43 100644 (file)
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-G=[1,s;1+s^2,3*s^3];[N,B,C]=pol2des(G);
-G1=clean(C*inv(s*N-eye())*B),G2=numer(G1)
+s = poly(0,'s');
+G = [1, s; 1+s^2, 3*s^3];
+[N, B, C] = pol2des(G);
+G1 = clean(C*inv(s*N-eye())*B)
+G2 = G1.num
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 4a89e9f..1c0476b 100644 (file)
     <refsection>
         <title>Exemples</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-G=[1,s;1+s^2,3*s^3];[N,B,C]=pol2des(G);
-G1=clean(C*inv(s*N-eye())*B),G2=numer(G1)
+s = poly(0,'s');
+G = [1, s; 1+s^2, 3*s^3];
+[N, B, C] = pol2des(G);
+G1 = clean(C*inv(s*N-eye())*B)
+G2 = G1.num
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 26ff211..c1cceff 100644 (file)
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-h=syslin('c',352*poly(-5,'s')/poly([0,0,2000,200,25,1],'s','c'));
-clf();evans(h,100)
-g=krac2(h)
-hf1=h/.g(1);roots(denom(hf1))
-hf2=h/.g(2);roots(denom(hf2))
+h = syslin('c', 352*poly(-5,'s') / poly([0,0,2000,200,25,1],'s','c'));
+clf
+evans(h,100)
+g = krac2(h)
+hf1 = h/.g(1); roots(hf1.den)
+hf2 = h/.g(2); roots(hf2.den)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index bee000e..5ac5ef0 100644 (file)
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-G=[1,s;1+s^2,3*s^3];[N,B,C]=pol2des(G);
-G1=clean(C*inv(s*N-eye())*B),G2=numer(G1)
+s = poly(0,'s');
+G = [1, s; 1+s^2, 3*s^3];
+[N, B, C] = pol2des(G);
+G1 = clean(C*inv(s*N-eye())*B)
+G2 = G1.num
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 4206a4d..6aa2942 100644 (file)
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="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="pol2des" xml:lang="pt">
     <refnamediv>
         <refname>pol2des</refname>
-        <refpurpose>conversão de matrizes de polinômios para formas
+        <refpurpose>conversão de matrizes de polinômios para formas
             descritoras
         </refpurpose>
     </refnamediv>
     <refsynopsisdiv>
-        <title> Seqüência de Chamamento </title>
+        <title> Seqüência de Chamamento </title>
         <synopsis>[N,B,C]=pol2des(Ds)</synopsis>
     </refsynopsisdiv>
     <refsection>
-        <title>Parâmetros</title>
+        <title>Parâmetros</title>
         <variablelist>
             <varlistentry>
                 <term>Ds</term>
                 <listitem>
-                    <para>matriz de polinômios</para>
+                    <para>matriz de polinômios</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>N, B, C</term>
                 <listitem>
-                    <para>três matrizes de reais</para>
+                    <para>três matrizes de reais</para>
                 </listitem>
             </varlistentry>
         </variablelist>
     </refsection>
     <refsection>
-        <title>Descrição</title>
+        <title>Descrição</title>
         <para>
-            Dada a matriz de polinômios <literal>Ds=D_0 +D_1 s +D_2 s^2 +...
+            Dada a matriz de polinômios <literal>Ds=D_0 +D_1 s +D_2 s^2 +...
                 +D_k s^k
             </literal>
-            ,<literal>pol2des</literal> retorna três matrizes
+            ,<literal>pol2des</literal> retorna três matrizes
             <literal>N, B, C</literal>, com sendo <literal>N</literal> nilpotente tais
             que:
         </para>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-G=[1,s;1+s^2,3*s^3];[N,B,C]=pol2des(G);
-G1=clean(C*inv(s*N-eye())*B),G2=numer(G1)
+s = poly(0,'s');
+G = [1, s; 1+s^2, 3*s^3];
+[N, B, C] = pol2des(G);
+G1 = clean(C*inv(s*N-eye())*B)
+G2 = G1.num
  ]]></programlisting>
     </refsection>
     <refsection>
-        <title> Ver Também </title>
+        <title> Ver Também </title>
         <simplelist type="inline">
             <member>
                 <link linkend="ss2des">ss2des</link>
index 64f8863..aa88e4f 100644 (file)
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-G=[1,s;1+s^2,3*s^3];[N,B,C]=pol2des(G);
-G1=clean(C*inv(s*N-eye())*B),G2=numer(G1)
+s = poly(0,'s');
+G = [1, s; 1+s^2, 3*s^3];
+[N, B, C] = pol2des(G);
+G1 = clean(C*inv(s*N-eye())*B)
+G2 = G1.num
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 7b9db46..fe2cd5c 100644 (file)
@@ -40,13 +40,13 @@ function [K,R]=kpure(sl,eps)
     end
 
     //(1) give K(s)=-D(s)/N(s)
-    s=poly(0,varn(sl.den))
-    K=-sl.den/sl.num;
+    s = poly(0,varn(sl.den))
+    K = -sl.den/sl.num;
     // replace K by the previous value in (2) and find the roots
-    s=roots(numer(horner(sl.den,-s)+K*horner(sl.num,-s)),"e");
+    s = roots((horner(sl.den,-s)+K*horner(sl.num,-s)).num, "e");
     //retain pure imaginary roots
-    s=imag(s(abs(real(s))<eps));
-    R=(s(s>0).'*%i);
+    s = imag(s(abs(real(s))<eps));
+    R = (s(s>0).'*%i);
     //find the K(s) values K(s)=-D(s)/N(s)
-    K=-real(freq(sl.den,sl.num,R))
+    K = -real(freq(sl.den,sl.num,R))
 endfunction
index c1d466c..c71af07 100644 (file)
 function [fmin,fmax]=nyquistfrequencybounds(H,bounds)
     //find frequencies that reaches the nyquist bounds on real an imag part
 
-    fname="nyquistFrequencyBounds" //for error messages
+    fname = "nyquistFrequencyBounds" //for error messages
 
     if or(size(bounds)<>[2 2]) then
-        error(msprintf(_("%s: Wrong size for argument #%d: (%d,%d) expected.\n"),fname,2,2,2))
+        msg = _("%s: Wrong size for argument #%d: (%d,%d) expected.\n");
+        error(msprintf(msg, fname, 2, 2, 2))
     end
     if or(bounds(2,:)<bounds(1,:)) then
-        error(msprintf(_("%s: Wrong value for input argument #%d: second row must be greater than first one.\n"),fname,2))
+        msg = _("%s: Wrong value for input argument #%d: second row must be greater than first one.\n");
+        error(msprintf(msg, fname, 2))
     end
     if and(typeof(H)<>["state-space" "rational" "zpk"]) then
-        ierr=execstr("[fmin,fmax]=%"+overloadname(H)+"_nyquistfrequencybounds(H,bounds)","errcatch")
+        ierr = execstr("[fmin,fmax]=%"+overloadname(H)+"_nyquistfrequencybounds(H,bounds)","errcatch")
         if ierr<>0 then
-            error(msprintf(gettext("%s: Wrong type for input argument: Linear dynamical system expected.\n"),"nyquistfrequencybounds",1))
+            msg = _("%s: Wrong type for input argument: Linear dynamical system expected.\n");
+            error(msprintf(msg, fname, 1))
         end
         return
     end
 
     if size(H,"*")<>1 then
-        error(msprintf(_("Wrong type for argument #%d: SISO expected.\n"),fname,1))
+        msg = _("Wrong type for argument #%d: SISO expected.\n");
+        error(msprintf(msg, fname, 1))
     end
 
     if typeof(H)=="state-space" then
-        H=ss2tf(H)
+        H = ss2tf(H)
     elseif typeof(H)=="zpk" then
-        H=zpk2tf(H)
+        H = zpk2tf(H)
     end
 
-    dom=H.dt
-    if dom==[]|dom=="d" then dom=1,end
-    eps=1d-10
+    dom = H.dt
+    if dom==[] | dom=="d" then
+        dom = 1
+    end
+    eps = 1d-10
 
-    frq=[];
-    orient=[]
+    frq = [];
+    orient = []
     if dom=="c" then
-        c=2*%i*%pi
-        function f=arg2freq(y)
-            f=y/c;
+        c = 2*%i*%pi
+        function f = arg2freq(y)
+            f = y/c;
         endfunction
-        Hr=(H+horner(H,-%s))/2;
-        Hi=(H-horner(H,-%s))/2;
+        Hr = (H+horner(H,-%s))/2;
+        Hi = (H-horner(H,-%s))/2;
     else
-        c=2*%i*%pi*dom
-        function f=arg2freq(y)
-            f=log(y)/c;
+        c = 2*%i*%pi*dom
+        function f = arg2freq(y)
+            f = log(y)/c;
         endfunction
-        Hr=(H+horner(H,1/%z))/2;
-        Hi=(H-horner(H,1/%z))/2;
+        Hr = (H+horner(H,1/%z))/2;
+        Hi = (H-horner(H,1/%z))/2;
     end
 
     // computing frequencies that make the nyquist locus to cross
     // the real part lower bound
-    f=arg2freq(roots(numer(Hr-bounds(1,1))));
-    f=real(f(real(f)>0&abs(imag(f)./abs(f))<eps));
+    f = arg2freq(roots((Hr-bounds(1,1)).num));
+    f = real(f(real(f)>0&abs(imag(f)./abs(f))<eps));
     //keep only those that give imaginary parts inside the bounds
-    im=imag(repfreq(H,f));
-    f=f(im<=bounds(2,2)&im>=bounds(1,2))
+    im = imag(repfreq(H,f));
+    f = f(im<=bounds(2,2)&im>=bounds(1,2))
     if f<>[] then
-        orient=[orient imag(repfreq(derivat(Hr),f))<0]
-        frq=[frq;f];
+        orient = [orient imag(repfreq(derivat(Hr),f))<0]
+        frq = [frq; f];
     end
 
     // computing frequencies that make the nyquist locus to cross
     // the real part upper bound
-    f=arg2freq(roots(numer(Hr-bounds(2,1))));
-    f=real(f(real(f)>0&abs(imag(f)./abs(f))<eps));
+    f = arg2freq(roots((Hr-bounds(2,1)).num));
+    f = real(f(real(f)>0 & abs(imag(f)./abs(f))<eps));
     //keep only those that give imaginary parts inside the bounds
-    im=imag(repfreq(H,f));
-    f=f(im<=bounds(2,2)&im>=bounds(1,2))
+    im = imag(repfreq(H,f));
+    f = f(im<=bounds(2,2) & im>=bounds(1,2))
     if f<>[] then
-        orient=[orient imag(repfreq(derivat(Hr),f))>0]
-        frq=[frq;f];
+        orient = [orient imag(repfreq(derivat(Hr),f))>0]
+        frq = [frq; f];
     end
 
     // computing frequencies that make the nyquist locus to cross
     // the imaginary part lower bound
-    f=arg2freq(roots(numer(Hi-%i*bounds(1,2))));
-    f=real(f(real(f)>0&abs(imag(f)./abs(f))<eps));
+    f = arg2freq(roots((Hi-%i*bounds(1,2)).num));
+    f = real(f(real(f)>0 & abs(imag(f)./abs(f))<eps));
     //keep only those that give real parts inside the bounds
-    re=real(repfreq(H,f));
-    f=f(re<=bounds(2,1)&re>=bounds(1,1))
+    re = real(repfreq(H,f));
+    f = f(re<=bounds(2,1) & re>=bounds(1,1))
     if f<>[] then
-        orient=[orient real(repfreq(derivat(Hi),f))>0]
-        frq=[frq;f];
+        orient = [orient real(repfreq(derivat(Hi),f))>0]
+        frq = [frq; f];
     end
 
     // computing frequencies that make the nyquist locus to cross
     // the imaginary part upper bound
-    f=arg2freq(roots(numer(Hi-%i*bounds(2,2))));
-    f=real(f(real(f)>0&abs(imag(f)./abs(f))<eps));
+    f = arg2freq(roots((Hi-%i*bounds(2,2)).num));
+    f = real(f(real(f)>0 & abs(imag(f)./abs(f))<eps));
     //keep only those that give real parts inside the bounds
-    re=real(repfreq(H,f));
-    f=f(re<=bounds(2,1)&re>=bounds(1,1))
+    re = real(repfreq(H,f));
+    f = f(re<=bounds(2,1) & re>=bounds(1,1))
     if f<>[] then
-        orient=[orient real(repfreq(derivat(Hi),f))<0]
-        frq=[frq;f];
+        orient = [orient real(repfreq(derivat(Hi),f))<0]
+        frq = [frq; f];
     end
 
     if frq==[] then
         //check if there is at least one point inside the bounds
-        r=repfreq(H,%pi)
-        if real(r)<bounds(1,1)|real(r)>bounds(2,1)|imag(r)<bounds(1,2)| ...
+        r = repfreq(H,%pi)
+        if real(r)<bounds(1,1) | real(r)>bounds(2,1) | imag(r)<bounds(1,2) | ...
             imag(r)>bounds(2,2) then
-            fmin=[];fmax=[]
+            fmin = [];
+            fmax = []
         else
-            fmin=0;fmax=%inf
+            fmin = 0;
+            fmax = %inf
         end
     else
         //looking for the lowest frequency for which the locus enters the
         //area and the highest for which the locus leaves it.
-        [frq,k]=gsort(frq,"g","i");
-        orient=orient(k)
+        [frq, k] = gsort(frq,"g","i");
+        orient = orient(k)
         if ~orient(1) then
             //locus starts inside the area
-            frq=[0;frq]
+            frq = [0; frq]
         end
         if orient($) then
             //locus ends inside the area
-            frq=[frq;%inf]
+            frq = [frq; %inf]
         end
 
-        fmin=frq(1)
-        fmax=frq($)
-
+        fmin = frq(1)
+        fmax = frq($)
     end
 
-
 endfunction
-
index b1b8a9d..3359720 100644 (file)
@@ -19,7 +19,7 @@ function [r,num]=routh_t(h,k,normalized)
     //feedback by the gain k
     //If  k=poly(0,'k') we will have a polynomial matrix with dummy variable
     //k, formal expression of the Routh table.
-    //r=routh_t(d) computes Routh table of h :attention ! d=denom of system
+    //r=routh_t(d) computes Routh table of h :attention ! d=denominator of system
 
     //If a zero row appears, it means that there exist a pair of pure imaginary
     //roots (oscillating system) or symmetric real roots. In this case, the pure imaginary roots are the
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_12174.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_12174.dia.ref
deleted file mode 100644 (file)
index 322b9e3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-//
-// <-- Non-regression test for bug 12174 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=12174
-//
-// <-- Short Description -->
-// The function routh_t gives incorrect output for all denominators that include
-// gain value "k".
-s = poly(0, 's');
-k = poly(0,'k');
-P=s*(s+7)*(s+11);
-h=1/P;
-r_rat=routh_t(h,k,%t);
-r_poly=routh_t(h,k,%f);
-ref_rat=[1 77; 18 k;(1386-k)/18 0; k 0];
-numref=numer(ref_rat);
-numref(3)=1386 - k;
-denr=denom(r_rat);
-denr=horner(denr,1);
-denref=denom(ref_rat);
-denref(3)=18;
-ref_poly=[1 77; 18 k; 1386-k 0; 1386*k-k*k 0];
-assert_checkequal(numer(r_rat)/denr,numref/denref);
-assert_checkequal(r_poly,ref_poly);
index 127be69..27b1030 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) 2013 - Scilab Enterprises - Charlotte HECQUET
@@ -9,7 +10,7 @@
 // <-- Non-regression test for bug 12174 -->
 //
 // <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=12174
+// http://bugzilla.scilab.org/12174
 //
 // <-- Short Description -->
 // The function routh_t gives incorrect output for all denominators that include
 
 s = poly(0, 's');
 k = poly(0,'k');
-P=s*(s+7)*(s+11);
-h=1/P;
-r_rat=routh_t(h,k,%t);
-r_poly=routh_t(h,k,%f);
+P = s*(s+7)*(s+11);
+h = 1/P;
+r_rat  = routh_t(h,k,%t);
+r_poly = routh_t(h,k,%f);
 
 ref_rat=[1 77; 18 k;(1386-k)/18 0; k 0];
-numref=numer(ref_rat);
+numref = ref_rat;
 numref(3)=1386 - k;
-denr=denom(r_rat);
-denr=horner(denr,1);
-denref=denom(ref_rat);
+denr = r_rat.den;
+denr = horner(denr,1);
+denref = ones(ref_rat);
 denref(3)=18;
 ref_poly=[1 77; 18 k; 1386-k 0; 1386*k-k*k 0];
 
-assert_checkequal(numer(r_rat)/denr,numref/denref);
-assert_checkequal(r_poly,ref_poly);
+assert_checkalmostequal(r_rat.num/denr, numref/denref);
+assert_checkequal(r_poly, ref_poly);
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_3323.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_3323.dia.ref
deleted file mode 100644 (file)
index 930bd63..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008 - INRIA - Serge Steer
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- Non-regression test for bug 3323 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=3323
-//
-// <-- Short Description -->
-//   In ss2tf.sci, it is claimed that one may enter the second argument, rmax, as "b".
-z=poly(0,'z');
-h=[1,1/z;1/(z^2+1),z/(z^2-2)];
-if norm(coeff(numer(clean(ss2tf(tf2ss(h),'b'))-h)),1) >100*%eps then bugmes();quit;end
index 6da49c5..4eb4ea2 100644 (file)
@@ -1,4 +1,3 @@
-//<-- CLI SHELL MODE -->
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA - Serge Steer
@@ -6,15 +5,16 @@
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
 // <-- Non-regression test for bug 3323 -->
 //
 // <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=3323
+// http://bugzilla.scilab.org/3323
 //
 // <-- Short Description -->
 //   In ss2tf.sci, it is claimed that one may enter the second argument, rmax, as "b".
 z=poly(0,'z');
 h=[1,1/z;1/(z^2+1),z/(z^2-2)];
-if norm(coeff(numer(clean(ss2tf(tf2ss(h),'b'))-h)),1) >100*%eps then pause,end
-
+if norm(coeff((clean(ss2tf(tf2ss(h),'b'))-h).num),1) >100*%eps then pause,end
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_6829.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_6829.dia.ref
deleted file mode 100644 (file)
index 07e7fcc..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - INRIA - Serge Steer
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- Non-regression test for bug 6829 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=6829
-//
-// <-- Short Description -->
-//  kpure fails to compute  gains when applied to an high degree system
-num=real(poly([-1+%i*1, -1-%i*1, 2+%i*8  2-%i*8 -2.5+%i*13 -2.5-%i*13],'s'));
-den=real(poly([1 1 3+%i*3 3-%i*3 -15+%i*7  -15-%i*7  -3 -7 -11],'s'));
-h=num/den;
-[K,Y]=kpure(h);
-n=size(K,'*');
-if n<>4 then bugmes();quit;end
-for i=1:n
-  r=roots(denom(h/.K(i)));
-  r=r(abs(real(r))<1e-6);//pure imaginary
-  r=r(imag(r)>0); //retains only positive imaginary part
-  if r==[] then bugmes();quit;end
-  if abs(r-Y(i))>1e-10 then bugmes();quit;end
-end
index 2f386fd..5cdc4f6 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) 2009 - INRIA - Serge Steer
@@ -9,7 +10,7 @@
 // <-- Non-regression test for bug 6829 -->
 //
 // <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=6829
+// http://bugzilla.scilab.org/6829
 //
 // <-- Short Description -->
 //  kpure fails to compute  gains when applied to an high degree system
@@ -22,7 +23,7 @@ h=num/den;
 n=size(K,'*');
 if n<>4 then pause,end
 for i=1:n
-  r=roots(denom(h/.K(i)));
+  r=roots((h/.K(i)).den);
   r=r(abs(real(r))<1e-6);//pure imaginary
   r=r(imag(r)>0); //retains only positive imaginary part
   if r==[] then pause,end
diff --git a/scilab/modules/cacsd/tests/unit_tests/lft.dia.ref b/scilab/modules/cacsd/tests/unit_tests/lft.dia.ref
deleted file mode 100644 (file)
index d1bfa2f..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2016 - INRIA - Serge Steer
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-function [A11,A12,A21,A22]=split4(A,m,n)
-  //m,n:taille du bloc 11
-      i1 = 1:m;   j1 = 1:n;
-      i2 = m+1:$; j2 = n+1:$;   
-      A11=A(i1,j1);A12=A(i1,j2);A21=A(i2,j1);A22=A(i2,j2);
-endfunction
-function S=check(P,p,R)
-  if argn(2)==2 then
-    R=p
-    p=size(R')
-  end
-  [mp,np]=size(P)
-  [mr,nr]=size(R)
-  [P11,P12,P21,P22]=split4(P,mp-p(1),np-p(2));
-  [R11,R12,R21,R22]=split4(R,p(2),p(1));
-  D=eye()-P22*R11;
-  S=[P11+P12*R11*(D\P21), (P12*R11*(D\P22)*R12)+P12*R12;
-     R21*(D\P21),R21*((D\P22)*R12)+R22]
-endfunction
-// with simple gains
-P=[1 2;3 4];R=2;
-T=lft(P,R);
-assert_checkalmostequal (T , -5/7 );
-assert_checktrue(T==lft(P,[1,1],R));
-P=[1 2 3; 4 5 6;7,8,9];R=[1 0;0 2];
-T=lft(P,R);
-assert_checkalmostequal (T ,-1);
-assert_checktrue(T==lft(P,[2,2],R));
-P=[1 2 3; 4 5 6;7,8,9];R=[1 0;0 2];
-[T,t]=lft(P,[1,1],R);
-assert_checkalmostequal (T ,[-13/8 -1 0;-5/4 -1 0;0 0 2]);
-assert_checktrue(T==lft(P,[1,1],R,[1 1]));
-assert_checkequal(t,[1 1]);
-P=[1 2 3; 4 5 6;7,8,9];R=[1 0;0 2];
-T=lft(P,[2,2],R);
-assert_checkalmostequal (T ,-1);
-assert_checktrue(T==lft(P,[2,2],R,[0 0]));
-P=[1 2 3; 4 5 6;7,8,9];R=[1 0 1;0 2 1];
-T=lft(P,[1 1],R);
-assert_checkalmostequal (T ,[-13/8,-1,0,-3/8;-5/4,-1,0,-3/4;0,0,2,1]);
-assert_checktrue(T==lft(P,[1 1],R,[1 2]));
-P=[1 2 3; 4 5 6;7,8,9];R=[1 0 1;0 2 1];
-[T,t]=lft(P,[2 1],R);
-assert_checkalmostequal (T ,[-7/5,-1,-3/5;-2/5,-2,-13/5]);
-assert_checkequal(t,[1 1]);
-[T,t]=lft(P,[1 2],R);
-assert_checkalmostequal (T ,[-1,6/7,1/7;-1,-6/7,-8/7]);
-assert_checkequal(t,[0 0]);
-T=lft(R,[2,2],P);
-assert_checkalmostequal (T ,[4/3 -5]);
-T=lft(R,[2,3],P,[0 1]);
-assert_checkequal (T ,[]);
-// with transfer functions
-s=%s;
-P=[1/s 2;3 4];R=2;
-T=lft(P,R);
-T_ref=(7-12*s)/(7*s);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0);
-assert_checktrue(T==lft(P,[1 1],R));
-P=[1 2;3 4];R=2/s;
-T=lft(P,R);
-T_ref=(4+s)/(-8+s);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0);
-assert_checktrue(T==lft(P,[1 1],R));
-P=[1 2;3/(s+1) 4];R=2/s;
-T=lft(P,R);
-T_ref=(4-7*s+s^2)/(-8-7*s+s^2);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0);
-assert_checktrue(T==lft(P,[1 1],R));
-P=[1 2 3; 4 5 6;7/s,8,9];R=[1 0;0 2];
-T=lft(P,R);
-T_ref=-1;
-assert_checkalmostequal (coeff(numer(T-T_ref)),0,1e-10,1e-10);
-assert_checktrue(T==lft(P,[2,2],R));
-P=[1 2 3; 4 5 6;7,8,9];R=[1 0;0 2]/s;
-T=lft(P,R);
-T_ref=(27*s+s^2)/(-6-23*s+s^2);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0,1e-10,1e-10);
-assert_checktrue(T==lft(P,[2,2],R));
-P=[1 2 3; 4 5 6;7,8,9]/(s-1);R=[1 0;0 2]/s;
-T=lft(P,R);
-T_ref=(27*s-s^2+s^3)/(-6+23*s-22*s^2-2*s^3+s^4);
-assert_checkalmostequal (coeff(numer(T-T_ref)),[0 0 0],1e-10,1e-10);
-assert_checktrue(T==lft(P,[2,2],R));
-P=[1 2 3; 4 5 6]/(s-1);R=[1 0;0 2]/s;
-T=lft(P,R);
-assert_checkequal (T ,[]);
-P=[1 2 3; 4 5 6;7/s,8,9];R=[1 0;0 2];
-T=lft(P,[2,2],R);
-T_ref=-1;
-assert_checkalmostequal (coeff(numer(T-T_ref)),0,1e-10,1e-10);
-// with state space
-s=%s;
-P=tf2ss([1/s 2;3 4]);R=2;
-T=lft(P,R);
-T_ref=(7-12*s)/(7*s);
-assert_checkalmostequal (coeff(numer(ss2tf(T)-T_ref)),0);
-assert_checktrue(T==lft(P,[1,1],R));
-P=[1 2;3 4];R=tf2ss(2/s);
-T=lft(P,R);
-T_ref=(4+s)/(-8+s);
-assert_checkalmostequal (coeff(numer(ss2tf(T)-T_ref)),0);
-assert_checktrue(T==lft(P,[1,1],R));
-P=tf2ss([1 2;3/(s+1) 4]);R=tf2ss(2/s);
-T=lft(P,R);
-T_ref=(4-7*s+s^2)/(-8-7*s+s^2);
-assert_checktrue (norm(coeff(numer(ss2tf(T)-T_ref)))<1e-10);
-P=tf2ss([1 2 3; 4 5 6;7,8,9]/(s-1));R=tf2ss([1 0;0 2]/s);
-T=lft(P,R);
-T_ref=(27*s-s^2+s^3)/(-6+23*s-22*s^2-2*s^3+s^4);
-assert_checktrue (norm(coeff(numer(ss2tf(T)-T_ref)))<1e-10);
-assert_checktrue(T==lft(P,[2,2],R));
-P=tf2ss([1 2 3; 4 5 6;7,8,9]/(s-1));R=tf2ss([1 0;0 2]/s);
-T=lft(P,[1,1],R);
-T_ref=[12-s+s^2,6-2*s+2*s^2,0*s;6-4*s+4*s^2,3-5*s+5*s^2,0;0,0,2]./[9-8*s-2*s^2+s^3,9-8*s-2*s^2+s^3,1;9-8*s-2*s^2+s^3,9-8*s-2*s^2+s^3,1;1,1,s];
-P=tf2ss([1 2 3; 4 5 6]/(s-1));R=tf2ss([1 0;0 2]/s);
-T=lft(P,R);
-assert_checkequal (T.C ,[]);
-assert_checkequal (size(T.A) ,[4,4]);
index 97e4d3a..c8a187f 100644 (file)
@@ -1,14 +1,16 @@
-//<-- CLI SHELL MODE -->
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2016 - INRIA - Serge Steer
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+
 function [A11,A12,A21,A22]=split4(A,m,n)
   //m,n:taille du bloc 11
       i1 = 1:m;   j1 = 1:n;
-      i2 = m+1:$; j2 = n+1:$;   
+      i2 = m+1:$; j2 = n+1:$;
       A11=A(i1,j1);A12=A(i1,j2);A21=A(i2,j1);A22=A(i2,j2);
 endfunction
 function S=check(P,p,R)
@@ -75,38 +77,38 @@ s=%s;
 P=[1/s 2;3 4];R=2;
 T=lft(P,R);
 T_ref=(7-12*s)/(7*s);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0);
+assert_checkalmostequal (coeff((T-T_ref).num),0);
 assert_checktrue(T==lft(P,[1 1],R));
 
 P=[1 2;3 4];R=2/s;
 T=lft(P,R);
 T_ref=(4+s)/(-8+s);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0);
+assert_checkalmostequal (coeff((T-T_ref).num),0);
 assert_checktrue(T==lft(P,[1 1],R));
 
 P=[1 2;3/(s+1) 4];R=2/s;
 T=lft(P,R);
 T_ref=(4-7*s+s^2)/(-8-7*s+s^2);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0);
+assert_checkalmostequal (coeff((T-T_ref).num),0);
 assert_checktrue(T==lft(P,[1 1],R));
 
 
 P=[1 2 3; 4 5 6;7/s,8,9];R=[1 0;0 2];
 T=lft(P,R);
 T_ref=-1;
-assert_checkalmostequal (coeff(numer(T-T_ref)),0,1e-10,1e-10);
+assert_checkalmostequal (coeff((T-T_ref).num),0,1e-10,1e-10);
 assert_checktrue(T==lft(P,[2,2],R));
 
 P=[1 2 3; 4 5 6;7,8,9];R=[1 0;0 2]/s;
 T=lft(P,R);
 T_ref=(27*s+s^2)/(-6-23*s+s^2);
-assert_checkalmostequal (coeff(numer(T-T_ref)),0,1e-10,1e-10);
+assert_checkalmostequal (coeff((T-T_ref).num),0,1e-10,1e-10);
 assert_checktrue(T==lft(P,[2,2],R));
 
 P=[1 2 3; 4 5 6;7,8,9]/(s-1);R=[1 0;0 2]/s;
 T=lft(P,R);
 T_ref=(27*s-s^2+s^3)/(-6+23*s-22*s^2-2*s^3+s^4);
-assert_checkalmostequal (coeff(numer(T-T_ref)),[0 0 0],1e-10,1e-10);
+assert_checkalmostequal (coeff((T-T_ref).num),[0 0 0],1e-10,1e-10);
 assert_checktrue(T==lft(P,[2,2],R));
 
 P=[1 2 3; 4 5 6]/(s-1);R=[1 0;0 2]/s;
@@ -116,7 +118,7 @@ assert_checkequal (T ,[]);
 P=[1 2 3; 4 5 6;7/s,8,9];R=[1 0;0 2];
 T=lft(P,[2,2],R);
 T_ref=-1;
-assert_checkalmostequal (coeff(numer(T-T_ref)),0,1e-10,1e-10);
+assert_checkalmostequal (coeff((T-T_ref).num),0,1e-10,1e-10);
 
 
 // with state space
@@ -125,25 +127,25 @@ s=%s;
 P=tf2ss([1/s 2;3 4]);R=2;
 T=lft(P,R);
 T_ref=(7-12*s)/(7*s);
-assert_checkalmostequal (coeff(numer(ss2tf(T)-T_ref)),0);
+assert_checkalmostequal (coeff((ss2tf(T)-T_ref).num),0);
 assert_checktrue(T==lft(P,[1,1],R));
 
 P=[1 2;3 4];R=tf2ss(2/s);
 T=lft(P,R);
 T_ref=(4+s)/(-8+s);
-assert_checkalmostequal (coeff(numer(ss2tf(T)-T_ref)),0);
+assert_checkalmostequal (coeff((ss2tf(T)-T_ref).num),0);
 assert_checktrue(T==lft(P,[1,1],R));
 
 P=tf2ss([1 2;3/(s+1) 4]);R=tf2ss(2/s);
 T=lft(P,R);
 T_ref=(4-7*s+s^2)/(-8-7*s+s^2);
-assert_checktrue (norm(coeff(numer(ss2tf(T)-T_ref)))<1e-10);
+assert_checktrue (norm(coeff((ss2tf(T)-T_ref).num))<1e-10);
 
 
 P=tf2ss([1 2 3; 4 5 6;7,8,9]/(s-1));R=tf2ss([1 0;0 2]/s);
 T=lft(P,R);
 T_ref=(27*s-s^2+s^3)/(-6+23*s-22*s^2-2*s^3+s^4);
-assert_checktrue (norm(coeff(numer(ss2tf(T)-T_ref)))<1e-10);
+assert_checktrue (norm(coeff((ss2tf(T)-T_ref).num))<1e-10);
 assert_checktrue(T==lft(P,[2,2],R));
 
 P=tf2ss([1 2 3; 4 5 6;7,8,9]/(s-1));R=tf2ss([1 0;0 2]/s);
diff --git a/scilab/modules/cacsd/tests/unit_tests/routh_t.dia.ref b/scilab/modules/cacsd/tests/unit_tests/routh_t.dia.ref
deleted file mode 100644 (file)
index c629767..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- CLI SHELL MODE -->
-// unit tests for routh_t() function
-// =============================================================================
-s=poly(0,'s');
-k=poly(0,'k');
-//Test with a polynomial
-P1=s*(s+7)*(s+11);
-assert_checkequal(routh_t(P1), [1 77; 18 0; 77 0; 0 0]);
-[r, num] = routh_t(P1);
-assert_checkequal(r, [1 77; 18 0; 77 0; 0 0]);
-assert_checkequal(num, 0);
-//Test with a transfert function
-h=1/P1;
-ref1=[1 77; 18 k;(1386-k)/18 0; k 0];
-numref1=numer(ref1);
-numref1(3)=1386 - k;
-denref1=denom(ref1);
-denref1(3)=18;
-assert_checkequal(numer(routh_t(h,k))/horner(denom(routh_t(h,k)),1),numref1/denref1);
-assert_checkequal(numer(routh_t(h,k,%t))/horner(denom(routh_t(h,k,%t)),1),numref1/denref1);
-assert_checkequal(routh_t(h,k,%f),[1 77; 18 k; 1386-k 0; 1386*k-k*k 0]);
-// One of the coefficients in the polynomial equals zero
-P2=2*s^2-24;
-assert_checkequal(routh_t(P2), [2 -24; 4 0; -24 0]);
-[r, num] = routh_t(P2);
-assert_checkequal(r, [2 -24; 4 0; -24 0]);
-assert_checkequal(num, 1);
-// A row full of zeros
-P3=s^4-6*s^3+10*s^2-6*s+9;
-assert_checkequal(routh_t(P3),[1 10 9; -6 -6 0; 9 9 0; 18 0 0; 9 0 0]);
-[r, num] = routh_t(P3);
-assert_checkequal(r,[1 10 9; -6 -6 0; 9 9 0; 18 0 0; 9 0 0]);
-assert_checkequal(num, 2);
-//Error messages
-assert_checkfalse(execstr("routh_t(P,%t)","errcatch")==0);
-assert_checkfalse(execstr("routh_t(P,k)","errcatch")==0);
-assert_checkfalse(execstr("routh_t()","errcatch")==0);
-assert_checkfalse(execstr("routh_t(h)","errcatch")==0);
-assert_checkfalse(execstr("routh_t(h,k,%t,%t)","errcatch")==0);
index 427d08b..db089c4 100644 (file)
@@ -6,6 +6,7 @@
 // =============================================================================
 
 // <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
 
 // unit tests for routh_t() function
 // =============================================================================
@@ -23,12 +24,12 @@ assert_checkequal(num, 0);
 //Test with a transfert function
 h=1/P1;
 ref1=[1 77; 18 k;(1386-k)/18 0; k 0];
-numref1=numer(ref1);
+numref1= ref1;
 numref1(3)=1386 - k;
-denref1=denom(ref1);
+denref1 = ones(ref1);
 denref1(3)=18;
-assert_checkequal(numer(routh_t(h,k))/horner(denom(routh_t(h,k)),1),numref1/denref1);
-assert_checkequal(numer(routh_t(h,k,%t))/horner(denom(routh_t(h,k,%t)),1),numref1/denref1);
+assert_checkequal(routh_t(h,k).num/horner(routh_t(h,k).den,1),numref1/denref1);
+assert_checkequal(routh_t(h,k,%t).num/horner(routh_t(h,k,%t).den,1),numref1/denref1);
 assert_checkequal(routh_t(h,k,%f),[1 77; 18 k; 1386-k 0; 1386*k-k*k 0]);
 
 // One of the coefficients in the polynomial equals zero
diff --git a/scilab/modules/core/tests/unit_tests/scal_vect_mat.dia.ref b/scilab/modules/core/tests/unit_tests/scal_vect_mat.dia.ref
deleted file mode 100644 (file)
index e15fdb0..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// Unit test for Scilab scalars, vectors and matrix
-pi=%pi;
-i=%i;
-e=%e;
-// .^ TEST WITH  REAL VECTORS
-x1=1:3;
-x0=0:2;
-assert_checkequal(x1.^2,[1 4 9]);
-assert_checkequal(x0.^2,[0 1 4]);
-assert_checkequal(x1.^0,[1 1 1]);
-assert_checktrue(norm(x1.^(2*(1+%eps))-x1.^2)<100*%eps);
-assert_checktrue(norm(x0.^(2*(1+%eps))-x0.^2)<100*%eps);
-assert_checktrue(norm(x1.^(-2)-[1 0.25 1/9])<100*%eps);
-assert_checktrue(norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])<100*%eps);
-// COMPLEX CASE
-p=2+%eps*%i;
-assert_checktrue(norm(x1.^p-x1.^2)<100*%eps);
-assert_checktrue(norm(x0.^p-x0.^2)<100*%eps);
-assert_checktrue(norm(x1.^(-p)-x1.^(-2))<100*%eps);
-y=%eps*%eps*ones(1,3);x1=x1+y;x0=x0+y;
-assert_checktrue(norm(x1.^2-[1 4 9])<100*%eps);
-assert_checktrue(norm(x0.^2-[0 1 4])<100*%eps);
-x1.^2.000000001;x0.^2.000000001;
-assert_checktrue(norm(x1.^2-[1 4 9])<100*%eps);
-assert_checktrue(norm(x0.^2-[0 1 4])<100*%eps);
-assert_checktrue(norm(x1.^(-2)-[1 0.25 1/9])<100*%eps);
-assert_checktrue(norm(x1.^(-2*(1+%eps))-[1 0.25 1/9])<100*%eps);
-assert_checktrue(norm(x1.^p-x1.^2)<100*%eps);
-assert_checktrue(norm(x0.^p-x0.^2)<100*%eps);
-assert_checktrue(norm(x1.^(-p)-x1.^(-2))<100*%eps);
-//
-// EMPTY MATRIX
-//=============
-assert_checkequal([].^1,[]);
-assert_checkequal([].^[1 2 3],[]);
-assert_checkequal([1 2 3].^[],[]);
-assert_checkequal([].^[],[]);
-// SQUARE MATRIX
-//==============
-x1=[1 2;3 4];
-assert_checkequal(x1^1,x1);
-assert_checkequal(x1^(-1),inv(x1));
-assert_checkequal(x1^2,x1*x1);
-assert_checkalmostequal(x1^(-2),inv(x1)^2);
-x1(1,1)=x1(1,1)+%i;
-assert_checkequal(x1^2, x1*x1);
-assert_checkalmostequal(x1^(-2), inv(x1)^2);
-assert_checkequal(x1^1, x1);
-assert_checkequal(x1^(-1), inv(x1));
-assert_checktrue(rand(4,4)^0==eye(4,4));
-x1=[1 2;2 3];x2=x1^(1/2);
-assert_checktrue(norm(x2^(2)-x1)<100*%eps);
-x2=x1^(-1/2);
-assert_checktrue(norm(x2^(-2)-x1)<100*%eps);
-//TEST WITH POLYNOMIAL VECTOR AND MATRICES
-//---------------------------------------
-s=poly(0,"s");
-assert_checkequal(coeff(s^3+1),[1 0 0 1]);
-x1=[1 s+1 s.^3+1];
-assert_checkequal(x1.^2,[1 1+2*s+s.^2  1+2*s.^3+s.^6]);
-assert_checkequal(coeff(x1.^0),[1 1 1]);
-assert_checkequal(x1.^3,[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]);
-assert_checkequal(coeff(numer((x1.^(-1)-[1 1/(1+s)  1/(1+s.^3)]))),[0 0 0]);
-x1=[s+1 2*s;3+4*s^2 4];
-assert_checkequal(x1^1,x1);
-assert_checkequal(x1^(-1),inv(x1));
-assert_checkequal(x1^2,x1*x1);
-assert_checkequal(x1^(-2),inv(x1)^2);
-x1(1,1)=x1(1,1)+%i;
-assert_checktrue(x1^2==x1*x1);
-//if or(x1^(-2)<>inv(x1)^2) then bugmes();quit;end  //simp complexe non implemented
-assert_checktrue(x1^1==x1);
-//if or(x1^(-1)<>inv(x1)) then bugmes();quit;end //simp complexe non implemented
-//simple ops
-assert_checkfalse(1==0);
-assert_checkfalse(1<0);
-assert_checkfalse(1<=0);
-assert_checktrue(1==1);
-assert_checkfalse(~(1==1));
-assert_checkfalse(0>1);
-assert_checkfalse(0>=1);
-assert_checkfalse(1<>1);
-assert_checktrue(0<>1);
-assert_checkfalse("1"=="0");
-assert_checkfalse("1"<>"1");
-assert_checkfalse(%s==0);
-assert_checkfalse(0==%s);
-assert_checktrue(%s==%s);
-assert_checkfalse(%s<>%s);
-assert_checkfalse(%s==%s+1);
-assert_checkfalse(%s+1==%s);
-assert_checkfalse(1/%s==0);
-assert_checkfalse(0==1/%s);
-assert_checktrue(1/%s==1/%s);
-assert_checkfalse(1/%s<>1/%s);
-assert_checkfalse(1/%s==1/%s+1);
-assert_checkfalse(1/%s+1==1/%s);
-assert_checktrue(1/%s<>1/%s+1);
-assert_checktrue(1/%s+1<>1/%s);
-l=list(1,[1 23],"adssa");
-l1=list(123,"sdwqqwq");
-assert_checkfalse(l==0);
-assert_checkfalse(0==l);
-assert_checktrue(l==l);
-assert_checkfalse(l<>l);
-assert_checkfalse(l==l1);
-assert_checkfalse(l1==l);
-assert_checktrue(l<>l1);
-assert_checktrue(l1<>l);
-assert_checkfalse(%t&1==2);
-assert_checktrue(%t|1==2);
-assert_checkfalse(%t&-1==2);
-assert_checktrue(%t|-1==2);
-assert_checkfalse(1<2&1==2);
-assert_checktrue(1<2|1==2);
-assert_checkfalse(1<2&-1==2);
-assert_checktrue(1<2|-1==2);
-assert_checkfalse(2>1&1==2);
-assert_checktrue(2>1|1==2);
-assert_checkfalse(2>1&-1==2);
-assert_checktrue(2>1|-1==2);
-assert_checkfalse(1==1&1==2);
-assert_checktrue(1==1|1==2);
-assert_checkfalse(1==1&-1==2);
-assert_checktrue(1==1|-1==2);
-assert_checkfalse(1<>2&1==2);
-assert_checktrue(1<>2|1==2);
-assert_checkfalse(1<>2&-1==2);
-assert_checktrue(1<>2|-1==2);
-assert_checkfalse(%t&1>2);
-assert_checktrue(%t|1>2);
-assert_checkfalse(%t&-1>2);
-assert_checktrue(%t|-1>2);
-assert_checkfalse(1<2&1>2);
-assert_checktrue(1<2|1>2);
-assert_checkfalse(1<2&-1>2);
-assert_checktrue(1<2|-1>2);
-assert_checkfalse(2>1&1>2);
-assert_checktrue(2>1|1>2);
-assert_checkfalse(2>1&-1>2);
-assert_checktrue(2>1|-1>2);
-assert_checkfalse(1==1&1>2);
-assert_checktrue(1==1|1>2);
-assert_checkfalse(1==1&-1>2);
-assert_checktrue(1==1|-1>2);
-assert_checkfalse(1<>2&1>2);
-assert_checktrue(1<>2|1>2);
-assert_checkfalse(1<>2&-1>2);
-assert_checktrue(1<>2|-1>2);
index 5eae14b..5d9b9ba 100644 (file)
@@ -1,10 +1,13 @@
-//<-- CLI SHELL MODE -->
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ????-2008 - INRIA
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
+
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+
 // Unit test for Scilab scalars, vectors and matrix
 
 pi=%pi;
@@ -84,7 +87,7 @@ x1=[1 s+1 s.^3+1];
 assert_checkequal(x1.^2,[1 1+2*s+s.^2  1+2*s.^3+s.^6]);
 assert_checkequal(coeff(x1.^0),[1 1 1]);
 assert_checkequal(x1.^3,[1,1+3*s+3*s^2+s^3,1+3*s^3+3*s^6+s^9]);
-assert_checkequal(coeff(numer((x1.^(-1)-[1 1/(1+s)  1/(1+s.^3)]))),[0 0 0]);
+assert_checkequal(coeff(((x1.^(-1)-[1 1/(1+s)  1/(1+s.^3)])).num),[0 0 0]);
 
 
 x1=[s+1 2*s;3+4*s^2 4];
diff --git a/scilab/modules/elementary_functions/tests/unit_tests/repmat.dia.ref b/scilab/modules/elementary_functions/tests/unit_tests/repmat.dia.ref
deleted file mode 100644 (file)
index d3e98ce..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2011 - INRIA - Serge Steer
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- CLI SHELL MODE -->
-assert_checkequal(repmat(1:3,2,2),[1,2,3,1,2,3;1,2,3,1,2,3]);
-assert_checkequal(repmat(1+2*%i,2),[ 1+%i*2, 1+%i*2; 1+%i*2, 1+%i*2]);
-a=int8([1 0 1;0 1 0]);
-assert_checkequal(repmat(a,2,3,2),matrix(int8([1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1; ...
-0;1;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1; ...
-1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;1;0;0;1;0;1;1;0; ...
-1;0]),4,9,2));
-assert_checkequal(repmat("Scilab",3,2),["Scilab","Scilab";"Scilab","Scilab";"Scilab","Scilab"]);
-H=repmat([1/%s;2/(%s+1)],1,3);
-s=poly(0,"s");
-H_ref=[1/s,1/s,1/s;2/(1+s),2/(1+s),2/(1+s)];
-assert_checkequal(numer(H),numer(H_ref));
-assert_checkequal(denom(H),denom(H_ref));
-assert_checkequal(repmat([],2,2),[]);
-B_ref=int8(matrix([1;3;7;15;31;63;127;55;1;3;7;15;31;63;127;55], [2 4 2]));
-assert_checkequal(repmat(int8([1,7,31,127;3,15,63,55]),1,1,2),B_ref);
-C_ref = matrix(1:24, [2 3 2 2]);
-assert_checkequal(repmat(C_ref,1),C_ref);
-assert_checkequal(repmat(1:2, 2),[1 2 1 2; 1 2 1 2]);
-assert_checkequal(repmat(matrix(1:2, [1 2]),2),[1 2 1 2; 1 2 1 2]);
-assert_checkequal(repmat([1,2;3,4],[2,3]),[1,2,1,2,1,2;3,4,3,4,3,4;1,2,1,2,1,2;3,4,3,4,3,4]);
-assert_checkequal(repmat(int8([1,2;3,4]),[2,3]),int8([1,2,1,2,1,2;3,4,3,4,3,4;1,2,1,2,1,2;3,4,3,4,3,4]));
-assert_checkequal(repmat(matrix(1:2, 1, 2),[2,3]),[1,2,1,2,1,2;1,2,1,2,1,2]);
index 0798ee8..b4c05a4 100644 (file)
@@ -6,6 +6,7 @@
 // =============================================================================
 
 // <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
 
 assert_checkequal(repmat(1:3,2,2),[1,2,3,1,2,3;1,2,3,1,2,3]);
 assert_checkequal(repmat(1+2*%i,2),[ 1+%i*2, 1+%i*2; 1+%i*2, 1+%i*2]);
@@ -18,8 +19,8 @@ assert_checkequal(repmat("Scilab",3,2),["Scilab","Scilab";"Scilab","Scilab";"Sci
 H=repmat([1/%s;2/(%s+1)],1,3);
 s=poly(0,"s");
 H_ref=[1/s,1/s,1/s;2/(1+s),2/(1+s),2/(1+s)];
-assert_checkequal(numer(H),numer(H_ref));
-assert_checkequal(denom(H),denom(H_ref));
+assert_checkequal(H.num, H_ref.num);
+assert_checkequal(H.den, H_ref.den);
 assert_checkequal(repmat([],2,2),[]);
 B_ref=int8(matrix([1;3;7;15;31;63;127;55;1;3;7;15;31;63;127;55], [2 4 2]));
 assert_checkequal(repmat(int8([1,7,31,127;3,15,63,55]),1,1,2),B_ref);
diff --git a/scilab/modules/linear_algebra/tests/unit_tests/det.dia.ref b/scilab/modules/linear_algebra/tests/unit_tests/det.dia.ref
deleted file mode 100644 (file)
index 27cac99..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA Michael Baudin
-// Copyright (C) 2015 - Scilab Enterprises - John Gliksberg
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-//==========================================================================
-//==============================   det        ==============================
-//==========================================================================
-//Small dimension
-//Real
-A=[1 1; 1 2];
-assert_checkalmostequal(det(A), 1);
-[e,m]=det(A);
-assert_checkalmostequal(e, 0);
-assert_checkalmostequal(m, 1);
-//Complex
-A=A+%i;
-assert_checkalmostequal(real(det(A)), 1);
-assert_checkalmostequal(imag(det(A)), 1);
-[e,m]=det(A);
-assert_checkalmostequal(e, 0);
-assert_checkalmostequal(real(m), 1);
-assert_checkalmostequal(imag(m), 1);
-//Sparse
-A=[1 1; 1 2];
-A=sparse(A);
-assert_checkalmostequal(det(A), 1);
-[e,m]=det(A);
-assert_checkalmostequal(e, 0);
-assert_checkalmostequal(m, 1);
-//Polynomials
-A=[1+%s 1; 1 2+%s];
-assert_checkequal(det(A), 1+3*%s+%s*%s);
-//Rationals
-A=[1+%s 1/%s; 1 2+%s];
-assert_checkequal(numer(det(A)), -1+2*%s+3*%s^2+%s^3);
-assert_checkequal(denom(det(A)), %s);
-//Sparse complex
-A=[1 1; 1 2];
-A=A+%i;
-A=sparse(A);
-assert_checkalmostequal(real(det(A)), 1);
-assert_checkalmostequal(imag(det(A)), 1);
-[e,m]=det(A);
-assert_checkalmostequal(e, 0);
-assert_checkalmostequal(real(m), 1);
-assert_checkalmostequal(imag(m), 1);
-//Large dimension
-//Real
-v=rand(1,21);
-A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21)));
-assert_checktrue(abs(det(A) - prod(v)) < 1D-7);
-[e,m]=det(A);
-assert_checktrue(abs(m*(10^e) - prod(v)) < 1D-7);
-//Complex
-v=(v+rand(v)*%i)/2;
-A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21)));
-assert_checktrue(abs(det(A) - prod(v)) < 1D-7);
-[e,m]=det(A);
-assert_checktrue(abs(m*(10^e) - prod(v)) < 1D-7);
-//Sparse
-v=rand(1,21);
-v=sparse(v);
-A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21)));
-assert_checktrue(abs(det(A) - prod(v)) < 1D-7);
-[e,m]=det(A);
-assert_checktrue(abs(m*(10^e) - prod(v)) < 1d-7);
-//Polynomials
-v=rand(1,21);
-v=v+%s;
-A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21)));
-assert_checktrue(abs(coeff(det(A)-prod(v))) < 1D-7);
-//Rationals
-v=rand(1,21);
-v=v/%s;
-A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21)));
-assert_checktrue(abs(coeff(numer(det(A))-numer(prod(v)))) < 1D-7);
-//Sparse complex
-v=rand(1,21);
-v=(v+rand(v)*%i)/2;
-v=sparse(v);
-A=rand(21,21);
-A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21)));
-A=sparse(A);
-assert_checktrue(abs(det(A) - prod(v)) < 1D-7);
-[e,m]=det(A);
-assert_checktrue(abs(m*(10^e) - prod(v)) < 1d-7);
-//Error messages
-A=[1 1; 1 2];
-errmsg1 = msprintf(_("%s: Wrong type for input argument #%d: Square matrix expected.\n"), "det", 1);
-assert_checkerror("det([1,2;3,4;5,6])", errmsg1, 20);
-errmsg2 = msprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "det", 1);
-assert_checkerror("det(A,1)", errmsg2, 77);
-// Check det == 0 for simple cases
-A = 0;
-assert_checkalmostequal(det(A), 0);
-A = [1 2
-1 2];
-assert_checkalmostequal(det(A), 0);
-A = [1 2 3
-1 2 3
-1 2 3];
-assert_checkalmostequal(det(A), 0);
-b = rand(1, 5);
-A = [b
-b
-b
-b
-b];
-assert_checkalmostequal(det(A), 0);
index 13b0c68..0b7b78f 100644 (file)
@@ -1,4 +1,5 @@
-//<-- CLI SHELL MODE -->
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ????-2008 - INRIA Michael Baudin
@@ -38,8 +39,8 @@ A=[1+%s 1; 1 2+%s];
 assert_checkequal(det(A), 1+3*%s+%s*%s);
 //Rationals
 A=[1+%s 1/%s; 1 2+%s];
-assert_checkequal(numer(det(A)), -1+2*%s+3*%s^2+%s^3);
-assert_checkequal(denom(det(A)), %s);
+assert_checkequal(det(A).num, -1+2*%s+3*%s^2+%s^3);
+assert_checkequal(det(A).den, %s);
 //Sparse complex
 A=[1 1; 1 2];
 A=A+%i;
@@ -80,7 +81,7 @@ assert_checktrue(abs(coeff(det(A)-prod(v))) < 1D-7);
 v=rand(1,21);
 v=v/%s;
 A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21)));
-assert_checktrue(abs(coeff(numer(det(A))-numer(prod(v)))) < 1D-7);
+assert_checktrue(abs(coeff(det(A).num - prod(v).num)) < 1D-7);
 //Sparse complex
 v=rand(1,21);
 v=(v+rand(v)*%i)/2;
index a9dbd72..943f060 100644 (file)
@@ -15,8 +15,8 @@ function h = %r_simp(h, d)
     // implement complex case
     // 0/den => 0/1
     if argn(2)==1 then
-        n = numer(h)
-        d = denom(h)
+        n = h.num
+        d = h.den
     else
         n = h
         h = []
diff --git a/scilab/modules/overloading/tests/nonreg_tests/bug_13893.dia.ref b/scilab/modules/overloading/tests/nonreg_tests/bug_13893.dia.ref
deleted file mode 100644 (file)
index 2e56aef..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2015 - Scilab Enterprises - Charlotte HECQUET
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- Non-regression test for bug 13893 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=13893
-//
-// <-- Short Description -->
-// simp() function does not set a rational denominator at 1 when numerator is equal to zero
-r = rlist(0,1+2*%z^2);
-r_res = simp(r);
-assert_checkequal(numer(r_res), 0);
-assert_checkequal(denom(r_res), 1+0*%z);
index 6a7c771..e74a1ff 100644 (file)
@@ -1,4 +1,5 @@
-//<-- CLI SHELL MODE -->
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2015 - Scilab Enterprises - Charlotte HECQUET
 // <-- Non-regression test for bug 13893 -->
 //
 // <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=13893
+// http://bugzilla.scilab.org/13893
 //
 // <-- Short Description -->
 // simp() function does not set a rational denominator at 1 when numerator is equal to zero
 
 r = rlist(0,1+2*%z^2);
 r_res = simp(r);
-assert_checkequal(numer(r_res), 0);
-assert_checkequal(denom(r_res), 1+0*%z);
+assert_checkequal(r_res.num, 0);
+assert_checkequal(r_res.den, 1+0*%z);
index b3902d8..e1e44da 100644 (file)
@@ -76,9 +76,9 @@ p11=derivat(p9)
 typeof(p1)
 typeof(p9)
 // The numerator and denominator polynomials of the rational polynomial
-// can be extracted with the "numer" and "denom" functions.
-numer(p9)
-denom(p9)
+// can be extracted with the ".num" and ".den" attributes:
+p9.num
+p9.den
 // Rational polynomials can be simplified with the "simp" function,
 // which returns the numerator and denominator of the given couple
 // of polynomials.
@@ -89,7 +89,7 @@ mode(m);
 
 // clear variables
 
-clear       n; clear         d; clear     denom; clear numer;
+clear       n; clear         d;
 clear  typeof; clear       p11; clear        p9; clear %p_r_p;
 clear    lnum; clear         g; clear   factors; clear roots1;
 clear   comp1; clear companion; clear  theroots; clear p10;
index a332a1d..4252225 100644 (file)
@@ -16,7 +16,7 @@
 <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="denom">
     <refnamediv>
         <refname>denom</refname>
-        <refpurpose>denominator</refpurpose>
+        <refpurpose>denominator <emphasis role="bold">(obsolete)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
     </refsection>
     <refsection>
         <title>Description</title>
+        <warning>
+            This function is obsolete and will be removed from Scilab 6.1.0. Please use the
+            <literal>.den</literal> rational attribute instead.
+        </warning>
         <para>
             <literal>den=denom(r)</literal> returns the denominator of a rational matrix.
         </para>
@@ -73,4 +77,16 @@ numer(p)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>denom()</literal> is declared obsolete. The rational attribute
+                    <literal>.den</literal> must be used instead.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index ca1e13d..8f71a63 100644 (file)
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss);
-wtf=ss2tf(wss);
-x1=ldiv(numer(wtf),denom(wtf),5)
-x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b]
-wssbis=markp2ss(x1',5,1,1);
-wtfbis=clean(ss2tf(wssbis))
-x3=ldiv(numer(wtfbis),denom(wtfbis),5)
+wss = ssrand(1,1,3);
+[a,b,c,d] = abcd(wss);
+wtf = ss2tf(wss);
+x1 = ldiv(wtf.num, wtf.den, 5)
+x2 = [c*b ; c*a*b ; c*a^2*b ; c*a^3*b ; c*a^4*b]
+wssbis = markp2ss(x1',5,1,1);
+wtfbis = clean(ss2tf(wssbis))
+x3 = ldiv(wtfbis.num, wtfbis.den, 5)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index cc8fec0..27d21ec 100644 (file)
@@ -16,7 +16,7 @@
 <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="numer">
     <refnamediv>
         <refname>numer</refname>
-        <refpurpose>numerator</refpurpose>
+        <refpurpose>numerator <emphasis role="bold">(obsolete)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
     </refsection>
     <refsection>
         <title>Description</title>
+        <warning>
+            This function is obsolete and will be removed from Scilab 6.1.0. Please use the
+            <literal>.num</literal> rational attribute instead.
+        </warning>
         <para>
             Utility function. <literal>num=numer(R)</literal> returns the numerator <literal>num</literal> of a rational
             function matrix <literal>R</literal> (<literal>R</literal> may be also a constant or polynomial matrix).
@@ -68,4 +72,16 @@ numer(p)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>numer()</literal> is declared obsolete. The rational attribute
+                    <literal>.num</literal> must be used instead.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 09d9f48..bad5e4f 100644 (file)
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H);
-w=residu(N.*horner(N,-s),D,horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
+s = poly(0,'s');
+H = [s/(s+1)^2, 1/(s+2)];
+N = H.num;
+D = H.den;
+w = residu(N.*horner(N,-s), D, horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
 sqrt(sum(w))  //This is H2 norm
 h2norm(tf2ss(H))
 
-p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2);
-b=(s-3)*(s+2/5)*(s+3);
-residu(p,a,b)+531863/4410    //Exact
-z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1;
-atild=gtild(a,'d');btild=gtild(b,'d');
-residu(b*btild,z*a,atild)-2.9488038   //Exact
-a=a+0*%i;b=b+0*%i;
-real(residu(b*btild,z*a,atild)-2.9488038) //Complex case
- ]]></programlisting>
+p = (s-1)*(s+1)*(s+2)*(s+10);
+a = (s-5)*(s-1)*(s*s)*((s+1/2)**2);
+b = (s-3)*(s+2/5)*(s+3);
+residu(p, a, b) + 531863/4410    //Exact
+z = poly(0,'z');
+a = z^3 + 0.7*z^2 + 0.5*z - 0.3;
+b = z^3 + 0.3*z^2 + 0.2*z + 0.1;
+atild = gtild(a, 'd');
+btild = gtild(b, 'd');
+residu(b*btild, z*a, atild) - 2.9488038   //Exact
+a = a + 0*%i;
+b = b + 0*%i;
+real(residu(b*btild, z*a, atild) - 2.9488038) //Complex case
+]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>See also</title>
index 368e2a7..ccd8dd7 100644 (file)
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-//Simple polynomial example
-z=poly(0,'z');
-p=(z-1/2)*(2-z)
-w=sfact(p);
-w*numer(horner(w,1/z))
-
-//matrix example
-F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z];
-P=F1*gtild(F1,'d');  //P is symmetric
-F=sfact(P)
+// Simple polynomial example
+p = (%z -1/2) * (2 - %z)
+w = sfact(p);
+w*horner(w, 1/%z).num
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
+// matrix example
+z = %z;
+F1 = [z-1/2, z+1/2, z^2+2; 1, z, -z; z^3+2*z, z, 1/2-z];
+P = F1*gtild(F1,'d');  // P is symmetric
+F = sfact(P)
 roots(det(P))
 roots(det(gtild(F,'d')))  //The stable roots
 roots(det(F))             //The antistable roots
 clean(P-F*gtild(F,'d'))
-
-//Example of continuous time use
-s=poly(0,'s');
-p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p);
-//p(s) = polynomial in s^2 , looks for stable f such that p=f(s)*f(-s)
-w=horner(p,(1-s)/(1+s));  // bilinear transform w=p((1-s)/(1+s))
-wn=numer(w);              //take the numerator
-fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); //Factor and back transform
-f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0));      //normalization
-roots(f)    //f is stable
-clean(f*gtild(f,'c')-p)    //f(s)*f(-s) is p(s)
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
+// Example of continuous time use
+s = %s;
+p = -3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));
+p = real(p);
+// p(s) = polynomial in s^2 , looks for stable f such that p=f(s)*f(-s)
+w = horner(p,(1-s)/(1+s));  // bilinear transform w=p((1-s)/(1+s))
+wn = w.num;                 // take the numerator
+fn = sfact(wn);
+f = horner(fn,(1-s)/(s+1)).num;  // Factor and back transform
+f = f/sqrt(horner(f*gtild(f,'c'),0));
+f = f*sqrt(horner(p,0));   // normalization
+roots(f)    // f is stable
+clean(f*gtild(f,'c')-p)    // f(s)*f(-s) is p(s)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 9d0ca7e..67bba3b 100644 (file)
@@ -2,7 +2,7 @@
 <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="denom">
     <refnamediv>
         <refname>denom</refname>
-        <refpurpose>dénominateur  </refpurpose>
+        <refpurpose>dénominateur <emphasis role="bold">(obsolète)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Séquence d'appel</title>
     </refsection>
     <refsection>
         <title>Description</title>
+        <warning>
+            Cette fonction est obsolète et sera supprimée de Scilab 6.1.0. SVP utiliser
+            l'attribut <literal>.den</literal> des fractions rationnelles à la place.
+        </warning>
         <para>
             <literal>den=denom(r)</literal> renvoie le dénominateur d'une
             matrice rationnelle <literal>R</literal> (<literal>R</literal> peut aussi être
@@ -64,4 +68,16 @@ numer(p)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>denom()</literal> est déclarée obsolète. L'attribut
+                    <literal>.den</literal> des fractions rationelles doit être utilisé à la place.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index bf0d2b6..7bac9dd 100644 (file)
     <refsection>
         <title>Exemples</title>
         <programlisting role="example"><![CDATA[
-wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss);
-wtf=ss2tf(wss);
-x1=ldiv(numer(wtf),denom(wtf),5)
-x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b]
-wssbis=markp2ss(x1',5,1,1);
-wtfbis=clean(ss2tf(wssbis))
-x3=ldiv(numer(wtfbis),denom(wtfbis),5)
+wss = ssrand(1,1,3);
+[a,b,c,d] = abcd(wss);
+wtf = ss2tf(wss);
+x1 = ldiv(wtf.num, wtf.den, 5)
+x2 = [c*b ; c*a*b ; c*a^2*b ; c*a^3*b ; c*a^4*b]
+wssbis = markp2ss(x1',5,1,1);
+wtfbis = clean(ss2tf(wssbis))
+x3 = ldiv(wtfbis.num, wtfbis.den, 5)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 6375ba8..1dff0a3 100644 (file)
@@ -2,7 +2,7 @@
 <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="numer">
     <refnamediv>
         <refname>numer</refname>
-        <refpurpose>numérateurs d'une matrice rationnelle  </refpurpose>
+        <refpurpose>numérateurs d'une matrice rationnelle <emphasis role="bold">(obsolète)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Séquence d'appel</title>
     </refsection>
     <refsection>
         <title>Description</title>
+        <warning>
+            Cette fonction est obsolète et sera supprimée de Scilab 6.1.0. SVP utiliser
+            l'attribut <literal>.num</literal> des fractions rationnelles à la place.
+        </warning>
         <para>
             <literal>num=numer(R)</literal> renvoie le numérateur <literal>num</literal> d'une matrice rationnelle <literal>R</literal> (<literal>R</literal> peut aussi être une matrice constante ou une matrice de polynômes).
             <literal>numer(R)</literal> est équivalent à <literal>R(2)</literal>, <literal>R('num')</literal> ou <literal>R.num</literal>
@@ -55,4 +59,16 @@ numer(p)
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>numer()</literal> est déclarée obsolète. L'attribut
+                    <literal>.num</literal> des fractions rationelles doit être utilisé à la place.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 21d58a0..90232c2 100644 (file)
     <refsection>
         <title>Exemples</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H);
-w=residu(N.*horner(N,-s),D,horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
-sqrt(sum(w))  // La norme H2
+s = poly(0,'s');
+H = [s/(s+1)^2, 1/(s+2)];
+N = H.num;
+D = H.den;
+w = residu(N.*horner(N,-s), D, horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
+sqrt(sum(w))  //  La norme H2
 h2norm(tf2ss(H))
 
-p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2);
-b=(s-3)*(s+2/5)*(s+3);
-residu(p,a,b)+531863/4410    // Exact
-z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1;
-atild=gtild(a,'d');btild=gtild(b,'d');
-residu(b*btild,z*a,atild)-2.9488038   // Exact
-a=a+0*%i;b=b+0*%i;
-real(residu(b*btild,z*a,atild)-2.9488038) // Cas complexe
+p = (s-1)*(s+1)*(s+2)*(s+10);
+a = (s-5)*(s-1)*(s*s)*((s+1/2)**2);
+b = (s-3)*(s+2/5)*(s+3);
+residu(p, a, b) + 531863/4410    // Exact
+z = poly(0,'z');
+a = z^3 + 0.7*z^2 + 0.5*z - 0.3;
+b = z^3 + 0.3*z^2 + 0.2*z + 0.1;
+atild = gtild(a, 'd');
+btild = gtild(b, 'd');
+residu(b*btild, z*a, atild) - 2.9488038   // Exact
+a = a + 0*%i;
+b = b + 0*%i;
+real(residu(b*btild, z*a, atild) - 2.9488038) // Cas complexe
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 8875b1c..14c3328 100644 (file)
     <refsection>
         <title>Exemples</title>
         <programlisting role="example"><![CDATA[
-// polynôme simple
-z=poly(0,'z');
-p=(z-1/2)*(2-z)
-w=sfact(p);
-w*numer(horner(w,1/z))
-
+// Polynôme simple
+p = (%z -1/2) * (2 - %z)
+w = sfact(p);
+w*horner(w, 1/%z).num
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
 // exemple matriciel
-F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z];
-P=F1*gtild(F1,'d');  // P est symétrique
-F=sfact(P)
+z = %z;
+F1 = [z-1/2, z+1/2, z^2+2; 1, z, -z; z^3+2*z, z, 1/2-z];
+P = F1*gtild(F1,'d');  // P est symétrique
+F = sfact(P)
 roots(det(P))
-roots(det(gtild(F,'d')))  // Les racines stables
-roots(det(F))             // Les racines antistables
+roots(det(gtild(F,'d')))  // racines stables
+roots(det(F))             // racines anti-stables
 clean(P-F*gtild(F,'d'))
-
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
 // Utilisation en temps continu
-s=poly(0,'s');
-p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p);
+s = %s;
+p = -3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));
+p = real(p);
+
 // p(s) = polynôme dans s^2, cherche un f stable tel que p=f(s)*f(-s)
-w=horner(p,(1-s)/(1+s));  // transformation bilinéaire w=p((1-s)/(1+s))
-wn=numer(w);              // prend le numérateur
-fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); // Factorisation et transformation inverse
-f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0));      // normalisation
+w = horner(p,(1-s)/(1+s));  // transformation bilinéaire w=p((1-s)/(1+s))
+wn = w.num;                 // prend le numérateur
+fn = sfact(wn);             // Factorisation
+f = horner(fn,(1-s)/(s+1)).num; // et transformation inverse
+f = f/sqrt(horner(f*gtild(f,'c'),0));
+f = f*sqrt(horner(p,0));        // normalisation
 roots(f)    // f est stable
-clean(f*gtild(f,'c')-p)    //f(s)*f(-s) est égal à p(s)
- ]]></programlisting>
+clean(f*gtild(f,'c')-p)    // f(s)*f(-s) est égal à p(s)
+]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>Voir aussi</title>
index 91e01a8..cab6b28 100644 (file)
@@ -16,7 +16,7 @@
 <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="denom">
     <refnamediv>
         <refname>denom</refname>
-        <refpurpose>分母</refpurpose>
+        <refpurpose>分母 <emphasis role="bold">(非推奨関数)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>呼び出し手順</title>
     </refsection>
     <refsection>
         <title>説明</title>
+        <warning>
+            This function is obsolete and will be removed from Scilab 6.1.0. Please use the
+            <literal>.den</literal> rational attribute instead.
+        </warning>
         <para>
             <literal>den=denom(r)</literal>は
             有理行列の分母を返します.
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>履歴</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>denom()</literal> is declared obsolete. The rational attribute
+                    <literal>.den</literal> must be used instead.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 796eac9..474daf8 100644 (file)
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss);
-wtf=ss2tf(wss);
-x1=ldiv(numer(wtf),denom(wtf),5)
-x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b]
-wssbis=markp2ss(x1',5,1,1);
-wtfbis=clean(ss2tf(wssbis))
-x3=ldiv(numer(wtfbis),denom(wtfbis),5)
+wss = ssrand(1,1,3);
+[a,b,c,d] = abcd(wss);
+wtf = ss2tf(wss);
+x1 = ldiv(wtf.num, wtf.den, 5)
+x2 = [c*b ; c*a*b ; c*a^2*b ; c*a^3*b ; c*a^4*b]
+wssbis = markp2ss(x1',5,1,1);
+wtfbis = clean(ss2tf(wssbis))
+x3 = ldiv(wtfbis.num, wtfbis.den, 5)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 9c7e31a..c0a0d81 100644 (file)
@@ -16,7 +16,7 @@
 <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="numer">
     <refnamediv>
         <refname>numer</refname>
-        <refpurpose>分子</refpurpose>
+        <refpurpose>分子 <emphasis role="bold">(非推奨関数)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>呼び出し手順</title>
     </refsection>
     <refsection>
         <title>説明</title>
+        <warning>
+            This function is obsolete and will be removed from Scilab 6.1.0. Please use the
+            <literal>.num</literal> rational attribute instead.
+        </warning>
         <para>
             ユーティリティ関数. <literal>num=numer(R)</literal> は,
             有理関数行列<literal>R</literal>の
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>履歴</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>numer()</literal> is declared obsolete. The rational attribute
+                    <literal>.num</literal> must be used instead.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index c58e9df..5dd3c89 100644 (file)
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H);
-w=residu(N.*horner(N,-s),D,horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
-sqrt(sum(w))  //H2ノルムです
+s = poly(0,'s');
+H = [s/(s+1)^2, 1/(s+2)];
+N = H.num;
+D = H.den;
+w = residu(N.*horner(N,-s), D, horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
+sqrt(sum(w))  // H2ノルムです
 h2norm(tf2ss(H))
-p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2);
-b=(s-3)*(s+2/5)*(s+3);
-residu(p,a,b)+531863/4410    //正確
-z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1;
-atild=gtild(a,'d');btild=gtild(b,'d');
-residu(b*btild,z*a,atild)-2.9488038   //正確
-a=a+0*%i;b=b+0*%i;
-real(residu(b*btild,z*a,atild)-2.9488038) //複素数の場合
+
+p = (s-1)*(s+1)*(s+2)*(s+10);
+a = (s-5)*(s-1)*(s*s)*((s+1/2)**2);
+b = (s-3)*(s+2/5)*(s+3);
+residu(p, a, b) + 531863/4410   // 正確
+z = poly(0,'z');
+a = z^3 + 0.7*z^2 + 0.5*z - 0.3;
+b = z^3 + 0.3*z^2 + 0.2*z + 0.1;
+atild = gtild(a, 'd');
+btild = gtild(b, 'd');
+residu(b*btild, z*a, atild) - 2.9488038   // 正確
+a = a + 0*%i;
+b = b + 0*%i;
+real(residu(b*btild, z*a, atild) - 2.9488038) // 複素数の場合
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 18d641c..d011c8d 100644 (file)
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-//Simple polynomial example
-z=poly(0,'z');
-p=(z-1/2)*(2-z)
-w=sfact(p);
-w*numer(horner(w,1/z))
-//matrix example
-F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z];
-P=F1*gtild(F1,'d');  //P is symmetric
-F=sfact(P)
+// Simple polynomial example
+p = (%z -1/2) * (2 - %z)
+w = sfact(p);
+w*(horner(w, 1/%z)).num
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
+// matrix example
+z = %z;
+F1 = [z-1/2, z+1/2, z^2+2; 1, z, -z; z^3+2*z, z, 1/2-z];
+P = F1*gtild(F1,'d');  // P is symmetric
+F = sfact(P)
 roots(det(P))
 roots(det(gtild(F,'d')))  //The stable roots
 roots(det(F))             //The antistable roots
 clean(P-F*gtild(F,'d'))
-//Example of continuous time use
-s=poly(0,'s');
-p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p);
-//p(s) = polynomial in s^2 , looks for stable f such that p=f(s)*f(-s)
-w=horner(p,(1-s)/(1+s));  // bilinear transform w=p((1-s)/(1+s))
-wn=numer(w);              //take the numerator
-fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); //Factor and back transform
-f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0));      //normalization
-roots(f)    //f is stable
-clean(f*gtild(f,'c')-p)    //f(s)*f(-s) is p(s)
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
+// Example of continuous time use
+s = %s;
+p = -3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));
+p = real(p);
+// p(s) = polynomial in s^2 , looks for stable f such that p=f(s)*f(-s)
+w = horner(p,(1-s)/(1+s));  // bilinear transform w=p((1-s)/(1+s))
+wn = w.num;                 // take the numerator
+fn = sfact(wn);
+f = horner(fn,(1-s)/(s+1)).num;  // Factor and back transform
+f = f/sqrt(horner(f*gtild(f,'c'),0));
+f = f*sqrt(horner(p,0));   // normalization
+roots(f)    // f is stable
+clean(f*gtild(f,'c')-p)    // f(s)*f(-s) is p(s)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
index 84cd631..94833e0 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2006-2008 - INRIA
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="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="denom" xml:lang="pt">
     <refnamediv>
         <refname>denom</refname>
-        <refpurpose>denominador</refpurpose>
+        <refpurpose>denominador <emphasis role="bold">(obsoleto)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
-        <title> Seqüência de Chamamento </title>
+        <title> Seqüência de Chamamento </title>
         <synopsis>den=denom(r)</synopsis>
     </refsynopsisdiv>
     <refsection>
-        <title>Parâmetros</title>
+        <title>Parâmetros</title>
         <variablelist>
             <varlistentry>
                 <term>r</term>
                 <listitem>
-                    <para>matriz de polinômios, de razões de polinômios ou de
+                    <para>matriz de polinômios, de razões de polinômios ou de
                         constantes.
                     </para>
                 </listitem>
             <varlistentry>
                 <term>den</term>
                 <listitem>
-                    <para>matriz de polinômios</para>
+                    <para>matriz de polinômios</para>
                 </listitem>
             </varlistentry>
         </variablelist>
     </refsection>
     <refsection>
-        <title>Descrição</title>
+        <title>Descrição</title>
+        <warning>
+            Esta função é obsoleta e será removida do Scilab 6.1.0. Use, em vez disso, o atributo
+            racional <literal>.den</literal>.
+        </warning>
         <para>
             <literal>den=denom(r)</literal> retorna o denominador de uma matriz
-            de razões de polinômios.
+            de razões de polinômios.
         </para>
-        <para>Desde que razões de polinômios são representadas internamente como
+        <para>Desde que razões de polinômios são representadas internamente como
             <literal>r=list(['r','num','den','dt'],num,den,[])</literal>,
-            <literal>denom(r</literal>) é o mesmo que <literal>r(3)</literal>,
+            <literal>denom(r</literal>) é o mesmo que <literal>r(3)</literal>,
             <literal>r('den')</literal> ou <literal>r.den</literal>
         </para>
     </refsection>
     <refsection>
-        <title> Ver Também </title>
+        <title> Ver Também </title>
         <simplelist type="inline">
             <member>
                 <link linkend="numer">numer</link>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Histórico</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>denom()</literal> is declared obsolete. The rational attribute
+                    <literal>.den</literal> must be used instead.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index c0c152d..80550b9 100644 (file)
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="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="ldiv" xml:lang="pt">
     <refnamediv>
         <refname>ldiv</refname>
-        <refpurpose>divisão longa entre matrizes de polinômios</refpurpose>
+        <refpurpose>divisão longa entre matrizes de polinômios</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
-        <title> Seqüência de Chamamento </title>
+        <title> Seqüência de Chamamento </title>
         <synopsis>[x]=ldiv(n,d,k)</synopsis>
     </refsynopsisdiv>
     <refsection>
-        <title>Parâmetros</title>
+        <title>Parâmetros</title>
         <variablelist>
             <varlistentry>
                 <term>n,d</term>
                 <listitem>
-                    <para>duas matrizes de polinômios reais </para>
+                    <para>duas matrizes de polinômios reais </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
         </variablelist>
     </refsection>
     <refsection>
-        <title>Descrição</title>
+        <title>Descrição</title>
         <para>
             <literal>x=ldiv(n,d,k)</literal> fornece os <literal>k</literal>
-            primeiros coeficientes da divisão longa de <literal>n</literal> por
-            <literal>d</literal> i.e. the a expansão de Taylor da matriz de razões de
-            polinômios <literal>[nij(z)/dij(z)]</literal> aproximando-se do
+            primeiros coeficientes da divisão longa de <literal>n</literal> por
+            <literal>d</literal> i.e. the a expansão de Taylor da matriz de razões de
+            polinômios <literal>[nij(z)/dij(z)]</literal> aproximando-se do
             infinito.
         </para>
         <para>
-            Os coeficientes de expansão de <literal>nij/dij</literal> são
+            Os coeficientes de expansão de <literal>nij/dij</literal> são
             armazenados em <literal>x((i-1)*n+k,j) k=1:n</literal>
         </para>
     </refsection>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
-wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss);
-wtf=ss2tf(wss);
-x1=ldiv(numer(wtf),denom(wtf),5)
-x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b]
-wssbis=markp2ss(x1',5,1,1);
-wtfbis=clean(ss2tf(wssbis))
-x3=ldiv(numer(wtfbis),denom(wtfbis),5)
+wss = ssrand(1,1,3);
+[a,b,c,d] = abcd(wss);
+wtf = ss2tf(wss);
+x1 = ldiv(wtf.num, wtf.den, 5)
+x2 = [c*b ; c*a*b ; c*a^2*b ; c*a^3*b ; c*a^4*b]
+wssbis = markp2ss(x1',5,1,1);
+wtfbis = clean(ss2tf(wssbis))
+x3 = ldiv(wtfbis.num, wtfbis.den, 5)
  ]]></programlisting>
     </refsection>
     <refsection>
-        <title> Ver Também </title>
+        <title> Ver Também </title>
         <simplelist type="inline">
             <member>
                 <link linkend="arl2">arl2</link>
index c28e677..b1a9a14 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2006-2008 - INRIA
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="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="numer" xml:lang="pt">
     <refnamediv>
         <refname>numer</refname>
-        <refpurpose>numerador</refpurpose>
+        <refpurpose>numerador <emphasis role="bold">(obsoleto)</emphasis></refpurpose>
     </refnamediv>
     <refsynopsisdiv>
-        <title> Seqüência de Chamamento </title>
+        <title> Seqüência de Chamamento </title>
         <synopsis>num=numer(R)</synopsis>
     </refsynopsisdiv>
     <refsection>
-        <title>Parâmetros</title>
+        <title>Parâmetros</title>
         <variablelist>
             <varlistentry>
                 <term>R</term>
                 <listitem>
-                    <para>matriz de polinômios, de razões de polinômios ou de constantes
+                    <para>matriz de polinômios, de razões de polinômios ou de constantes
                     </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>num</term>
                 <listitem>
-                    <para>matriz de polinômios</para>
+                    <para>matriz de polinômios</para>
                 </listitem>
             </varlistentry>
         </variablelist>
     </refsection>
     <refsection>
-        <title>Descrição</title>
+        <title>Descrição</title>
+        <warning>
+            Esta função é obsoleta e será removida do Scilab 6.1.0. Use, em vez disso, o atributo
+            racional <literal>.num </literal>.
+        </warning>
         <para>
-            Função utilitária. <literal>num=numer(R)</literal> retorna o
-            numerador <literal>num</literal> de uma matriz de funções racionais
-            <literal>R</literal> (<literal>R</literal> também pode ser uma matriz de
-            polinômios ou de constantes). <literal>numer(R)</literal> é equivalente a
+            Função utilitária. <literal>num=numer(R)</literal> retorna o
+            numerador <literal>num</literal> de uma matriz de funções racionais
+            <literal>R</literal> (<literal>R</literal> também pode ser uma matriz de
+            polinômios ou de constantes). <literal>numer(R)</literal> é equivalente a
             <literal>R(2)</literal>, <literal>R('num')</literal> ou
             <literal>R.num</literal>
         </para>
     </refsection>
     <refsection>
-        <title> Ver Também </title>
+        <title> Ver Também </title>
         <simplelist type="inline">
             <member>
                 <link linkend="denom">denom</link>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Histórico</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.2</revnumber>
+                <revdescription>
+                    <literal>numer()</literal> is declared obsolete. The rational attribute
+                    <literal>.num</literal> must be used instead.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 77a0b8a..7137607 100644 (file)
 <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="residu" xml:lang="pt">
     <refnamediv>
         <refname>residu</refname>
-        <refpurpose>resíduo</refpurpose>
+        <refpurpose>resíduo</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
-        <title> Seqüência de Chamamento </title>
+        <title> Seqüência de Chamamento </title>
         <synopsis>[V]=residu(P,Q1,Q2)</synopsis>
     </refsynopsisdiv>
     <refsection>
-        <title>Parâmetros</title>
+        <title>Parâmetros</title>
         <variablelist>
             <varlistentry>
                 <term>P, Q1, Q2</term>
                 <listitem>
-                    <para>polinômios ou matrizes de polinômios de coeficientes reais ou
+                    <para>polinômios ou matrizes de polinômios de coeficientes reais ou
                         complexos.
                     </para>
                 </listitem>
         </variablelist>
     </refsection>
     <refsection>
-        <title>Descrição</title>
+        <title>Descrição</title>
         <para>
             <literal>V=residu(P,Q1,Q2)</literal> retorna a matriz
-            <literal>V</literal> tal que <literal>V(i,j)</literal> é a soma dos
-            resíduos da fração racional <literal>P(i,j)/(Q1(i,j)*Q2(i,j))</literal>
+            <literal>V</literal> tal que <literal>V(i,j)</literal> é a soma dos
+            resíduos da fração racional <literal>P(i,j)/(Q1(i,j)*Q2(i,j))</literal>
             calculada nos zeros de <literal>Q1(i,j)</literal>.
         </para>
         <para>
-            <literal>Q1(i,j)</literal> e <literal>Q2(i,j)</literal> não devem
-            possuir raízes em comum.
+            <literal>Q1(i,j)</literal> e <literal>Q2(i,j)</literal> não devem
+            possuir raízes em comum.
         </para>
     </refsection>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
-s=poly(0,'s');
-H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H);
-w=residu(N.*horner(N,-s),D,horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
+s = poly(0,'s');
+H = [s/(s+1)^2, 1/(s+2)];
+N = H.num;
+D = H.den;
+w = residu(N.*horner(N,-s), D, horner(D,-s));  //N(s) N(-s) / D(s) D(-s)
 sqrt(sum(w))  //This is H2 norm
 h2norm(tf2ss(H))
-//
-p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2);
-b=(s-3)*(s+2/5)*(s+3);
-residu(p,a,b)+531863/4410    //Exato
-z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1;
-atild=gtild(a,'d');btild=gtild(b,'d');
-residu(b*btild,z*a,atild)-2.9488038   //Exato
-a=a+0*%i;b=b+0*%i;
-real(residu(b*btild,z*a,atild)-2.9488038) //Caso complexo
+
+p = (s-1)*(s+1)*(s+2)*(s+10);
+a = (s-5)*(s-1)*(s*s)*((s+1/2)**2);
+b = (s-3)*(s+2/5)*(s+3);
+residu(p, a, b) + 531863/4410    // Exato
+z = poly(0,'z');
+a = z^3 + 0.7*z^2 + 0.5*z - 0.3;
+b = z^3 + 0.3*z^2 + 0.2*z + 0.1;
+atild = gtild(a, 'd');
+btild = gtild(b, 'd');
+residu(b*btild, z*a, atild) - 2.9488038   // Exato
+a = a + 0*%i;
+b = b + 0*%i;
+real(residu(b*btild, z*a, atild) - 2.9488038) // Caso complexo
  ]]></programlisting>
     </refsection>
     <refsection>
-        <title> Ver Também </title>
+        <title> Ver Também </title>
         <simplelist type="inline">
             <member>
                 <link linkend="pfss">pfss</link>
index de50315..a4fb2fa 100644 (file)
 <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="sfact" xml:lang="pt">
     <refnamediv>
         <refname>sfact</refname>
-        <refpurpose>fatoração espectral em tempo discreto</refpurpose>
+        <refpurpose>fatoração espectral em tempo discreto</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
-        <title> Seqüência de Chamamento </title>
+        <title> Seqüência de Chamamento </title>
         <synopsis>F=sfact(P)</synopsis>
     </refsynopsisdiv>
     <refsection>
-        <title>Parâmetros</title>
+        <title>Parâmetros</title>
         <variablelist>
             <varlistentry>
                 <term>P</term>
                 <listitem>
-                    <para>matriz de polinômios reais</para>
+                    <para>matriz de polinômios reais</para>
                 </listitem>
             </varlistentry>
         </variablelist>
     </refsection>
     <refsection>
-        <title>Descrição</title>
+        <title>Descrição</title>
         <para>
             Acha <literal>F</literal>, um fator espectral de
-            <literal>P</literal>. <literal>P</literal> é uma matriz de polinômios tal
-            que cada raiz de <literal>P</literal> possui uma imagem simétrica em
-            relação ao círculo unitário. O problema é singular se uma raiz estiver no
-            círculo unitário.
+            <literal>P</literal>. <literal>P</literal> é uma matriz de polinômios tal
+            que cada raiz de <literal>P</literal> possui uma imagem simétrica em
+            relação ao círculo unitário. O problema é singular se uma raiz estiver no
+            círculo unitário.
         </para>
         <para>
-            <literal>sfact(P)</literal> retorna uma matriz de polinômios
-            <literal>F(z)</literal> que é anti-estável e tal que
+            <literal>sfact(P)</literal> retorna uma matriz de polinômios
+            <literal>F(z)</literal> que é anti-estável e tal que
         </para>
         <para>
             <literal>P = F(z)* F(1/z) *z^n</literal>
         </para>
-        <para> Para polinômios escalares um algorimto específico é implementado.
-            Os algoritmos são implementados do livro de Kucera.
+        <para> Para polinômios escalares um algorimto específico é implementado.
+            Os algoritmos são implementados do livro de Kucera.
         </para>
     </refsection>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
 //exemplo polinomial
-z=poly(0,'z');
-p=(z-1/2)*(2-z)
-w=sfact(p);
-w*numer(horner(w,1/z))
-
+p = (%z -1/2) * (2 - %z)
+w = sfact(p);
+w*(horner(w, 1/%z)).num
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
 //exemplo matricial
-F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z];
-P=F1*gtild(F1,'d');  //P é simétrica
-F=sfact(P)
+z = %z;
+F1 = [z-1/2, z+1/2, z^2+2; 1, z, -z; z^3+2*z, z, 1/2-z];
+P = F1*gtild(F1,'d');     // P é simétrica
+F = sfact(P)
 roots(det(P))
-roots(det(gtild(F,'d')))  //as raízes estáveis
-roots(det(F))             //as raízes anti-estáveis
+roots(det(gtild(F,'d')))  // as raízes estáveis
+roots(det(F))             // as raízes anti-estáveis
 clean(P-F*gtild(F,'d'))
-
-//exemplo de uso de tempo contínuo
-s=poly(0,'s');
-p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p);
-
-//p(s) = polinômio em s^2 , procura por f estável tal que p=f(s)*f(-s)
-w=horner(p,(1-s)/(1+s));  // transformação bilinear w=p((1-s)/(1+s))
-wn=numer(w);              //tomando o numerador
-fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); //fator e transformação de volta
-f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0));      //normalização
-roots(f)    //f é estável
-clean(f*gtild(f,'c')-p)    //f(s)*f(-s) é p(s)
+ ]]></programlisting>
+        <para/>
+        <programlisting role="example"><![CDATA[
+// exemplo de uso de tempo contínuo
+s = %s;
+p = -3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));
+p = real(p);
+// p(s) = polinômio em s^2 , procura por f estável tal que p=f(s)*f(-s)
+w = horner(p,(1-s)/(1+s));  // transformação bilinear w=p((1-s)/(1+s))
+wn = w.num;                 // tomando o numerador
+fn = sfact(wn);             // fator e ..
+f = horner(fn,(1-s)/(s+1)).num; // transformação de volta
+f = f/sqrt(horner(f*gtild(f,'c'),0));
+f = f*sqrt(horner(p,0));   // normalização
+roots(f)    //f é estável
+clean(f*gtild(f,'c')-p)    // f(s)*f(-s) é p(s)
  ]]></programlisting>
     </refsection>
     <refsection>
-        <title> Ver Também </title>
+        <title> Ver Também </title>
         <simplelist type="inline">
             <member>
                 <link linkend="gtild">gtild</link>
index 1f98e94..110ea1c 100644 (file)
 // along with this program.
 
 
-function den=denom(r)
+function den = denom(r)
     //returns the denominator of a rational matrix
     //%Syntax: den=denom(r)
     //with
     //r: rational function matrix (may be polynomial or scalar matrix)
     //den: polynomial matrix
     //!
+    warnobsolete("the r.den rational attribute","6.1.0")
     select typeof(r)
     case "constant" then
         den=ones(r);
index 87cb7ff..7b37110 100644 (file)
@@ -15,6 +15,7 @@ function num=numer(r)
     //returns the numerator num of a rational function matrix r (r may be
     //also a scalar or polynomial matrix
     //!
+    warnobsolete("the r.num rational attribute","6.1.0")
     select typeof(r)
     case "constant" then
         num=r;
diff --git a/scilab/modules/polynomials/tests/unit_tests/polelm.dia.ref b/scilab/modules/polynomials/tests/unit_tests/polelm.dia.ref
deleted file mode 100644 (file)
index 466ceec..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ????-2008 - INRIA
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- CLI SHELL MODE -->
-//poly (coeff)
-v=[1 2 3];nam="s";job="c";p=1+2*%s+3*%s^2;
-if poly(v,"s","c")<>p then bugmes();quit;end
-if poly(v+0,"s","c")<>p then bugmes();quit;end
-if poly(v,nam,"c")<>p then bugmes();quit;end
-if poly(v+0,nam,"c")<>p then bugmes();quit;end
-if poly(v,"s",job)<>p then bugmes();quit;end
-if poly(v+0,"s",job)<>p then bugmes();quit;end
-if poly(v,nam,job)<>p then bugmes();quit;end
-if poly(v+0,nam,job)<>p then bugmes();quit;end
-v=[1+%i 2 3];p=1+%i+2*%s+3*%s^2;
-if poly(v,"s","c")<>p then bugmes();quit;end
-if poly(v+0,"s","c")<>p then bugmes();quit;end
-if poly(v,nam,"c")<>p then bugmes();quit;end
-if poly(v+0,nam,"c")<>p then bugmes();quit;end
-if poly(v,"s",job)<>p then bugmes();quit;end
-if poly(v+0,"s",job)<>p then bugmes();quit;end
-if poly(v,nam,job)<>p then bugmes();quit;end
-if poly(v+0,nam,job)<>p then bugmes();quit;end
-//poly (roots)
-v=[1 2 3];nam="s";job="r";p=-6+11*%s-6*%s^2+%s^3;
-if poly(v,"s","r")<>p then bugmes();quit;end
-if poly(v+0,"s","r")<>p then bugmes();quit;end
-if poly(v,nam,"r")<>p then bugmes();quit;end
-if poly(v+0,nam,"r")<>p then bugmes();quit;end
-if poly(v,"s",job)<>p then bugmes();quit;end
-if poly(v+0,"s",job)<>p then bugmes();quit;end
-if poly(v,nam,job)<>p then bugmes();quit;end
-if poly(v+0,nam,job)<>p then bugmes();quit;end
-v=[1+%i 2 3];p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3;
-if poly(v,"s","r")<>p then bugmes();quit;end
-if poly(v+0,"s","r")<>p then bugmes();quit;end
-if poly(v,nam,"r")<>p then bugmes();quit;end
-if poly(v+0,nam,"r")<>p then bugmes();quit;end
-if poly(v,"s",job)<>p then bugmes();quit;end
-if poly(v+0,"s",job)<>p then bugmes();quit;end
-if poly(v,nam,job)<>p then bugmes();quit;end
-if poly(v+0,nam,job)<>p then bugmes();quit;end
-v=[];p=poly(1,"s","c");
-if poly(v,"s","r")<>p then bugmes();quit;end
-if poly([],"s","r")<>p then bugmes();quit;end
-if poly(v,nam,"r")<>p then bugmes();quit;end
-if poly([],nam,"r")<>p then bugmes();quit;end
-if poly(v,"s",job)<>p then bugmes();quit;end
-if poly([],"s",job)<>p then bugmes();quit;end
-if poly(v,nam,job)<>p then bugmes();quit;end
-if poly([],nam,job)<>p then bugmes();quit;end
-//poly (caracteristic)
-nam="s";a=[1 2;3 4];p=-2-5*%s+%s^2;
-if norm(coeff(poly(a,"s")-p))>100*%eps then bugmes();quit;end
-if norm(coeff(poly(a+0,"s")-p))>100*%eps then bugmes();quit;end
-if norm(coeff(poly(a,nam)-p))>100*%eps then bugmes();quit;end
-if norm(coeff(poly(a+0,nam)-p))>100*%eps then bugmes();quit;end
-a=[1+%i 2;3 4];p=-2+%i*4+(-5-%i)*%s+%s^2 ;
-if norm(coeff(poly(a,"s")-p))>100*%eps then bugmes();quit;end
-if norm(coeff(poly(a+0,"s")-p))>100*%eps then bugmes();quit;end
-if norm(coeff(poly(a,nam)-p))>100*%eps then bugmes();quit;end
-if norm(coeff(poly(a+0,nam)-p))>100*%eps then bugmes();quit;end
-a=[];p=poly(1,"s","c");
-if poly(a,"s")<>p then bugmes();quit;end
-if poly([],"s")<>p then bugmes();quit;end
-if poly(a,nam)<>p then bugmes();quit;end
-if poly([],nam)<>p then bugmes();quit;end
-//degree
-v=[1 2 3];d=[0 0 0];
-if or(degree(v)<>d) then bugmes();quit;end
-if or(degree(v+0)<>d) then bugmes();quit;end
-v=[-2-5*%s+%s^2;-6+11*%s-6*%s^2+%s^3];d=[2;3];
-if or(degree(v)<>d) then bugmes();quit;end
-if or(degree(v+0)<>d) then bugmes();quit;end
-v=[];d=[];
-if or(degree(v)<>d) then bugmes();quit;end
-if or(degree([])<>d) then bugmes();quit;end
-//coeff
-p=[1+2*%s;%s^3];c=[1 2 0 0;0 0 0 1];sel=[0 1 1];
-if or(coeff(p)<>c) then bugmes();quit;end
-if or(coeff(p+0)<>c) then bugmes();quit;end
-if or(coeff(p,sel)<>c(:,sel+1)) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c(:,sel+1)) then bugmes();quit;end
-if or(coeff(p,sel+0)<>c(:,sel+1)) then bugmes();quit;end
-if or(coeff(p+0,sel+0)<>c(:,sel+1)) then bugmes();quit;end
-sel=5;
-if or(coeff(p,sel+0)<>zeros(size(p,1),1)) then bugmes();quit;end
-p=[1+2*%s, %s^3];c=[1 0 2 0 0 0 0 1];
-if or(coeff(p)<>c) then bugmes();quit;end
-if or(coeff(p+0)<>c) then bugmes();quit;end
-sel=[0 0];c=[1 0 1 0];
-if or(coeff(p,sel)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c) then bugmes();quit;end
-if or(coeff(p,sel+0)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end
-p=[1+%i+2*%s;%s^3];c=[1+%i 2 0 0;0 0 0 1];sel=[0 1 1];
-if or(coeff(p)<>c) then bugmes();quit;end
-if or(coeff(p+0)<>c) then bugmes();quit;end
-if or(coeff(p,sel)<>c(:,sel+1)) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c(:,sel+1)) then bugmes();quit;end
-if or(coeff(p,sel+0)<>c(:,sel+1)) then bugmes();quit;end
-if or(coeff(p+0,sel+0)<>c(:,sel+1)) then bugmes();quit;end
-sel=5;
-if or(coeff(p,sel+0)<>zeros(size(p,1),1)) then bugmes();quit;end
-p=[1+2*%s, %s^3];c=[1 0 2 0 0 0 0 1];
-if or(coeff(p)<>c) then bugmes();quit;end
-if or(coeff(p+0)<>c) then bugmes();quit;end
-sel=[0 0];c=[1 0 1 0];
-if or(coeff(p,sel)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c) then bugmes();quit;end
-if or(coeff(p,sel+0)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end
-p=[1 2;3 4];sel=0;c=p;
-if or(coeff(p)<>c) then bugmes();quit;end
-if or(coeff(p+0)<>c) then bugmes();quit;end
-if or(coeff(p,sel)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c) then bugmes();quit;end
-if or(coeff(p,sel+0)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end
-p=[1 2;3 4];sel=[0 0];c=[p p];
-if or(coeff(p,sel)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c) then bugmes();quit;end
-if or(coeff(p,sel+0)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end
-p=[1 2;3 4];sel=[0 1];c=[p 0*p];
-if or(coeff(p,sel)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c) then bugmes();quit;end
-if or(coeff(p,sel+0)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end
-p=[1 2;3 4];sel=[];c=[];
-if or(coeff(p,sel)<>c) then bugmes();quit;end
-if or(coeff(p+0,sel)<>c) then bugmes();quit;end
-if or(coeff(p,[])<>c) then bugmes();quit;end
-if or(coeff(p+0,[])<>c) then bugmes();quit;end
-p=[];sel=0;c=[];
-if or(coeff(p)<>c) then bugmes();quit;end
-if or(coeff([])<>c) then bugmes();quit;end
-if or(coeff(p,sel)<>c) then bugmes();quit;end
-if or(coeff([],sel)<>c) then bugmes();quit;end
-//sum
-a=[1+%s 2;-3 4;5 -6];
-if sum(a)<>3+%s then bugmes();quit;end
-if sum(a+0)<>3+%s then bugmes();quit;end
-if or(sum(a,1)<>[3+%s 0]) then bugmes();quit;end
-if or(sum(a+0,1)<>[3+%s 0]) then bugmes();quit;end
-n=1;
-if or(sum(a,n)<>[3+%s 0]) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s 0]) then bugmes();quit;end
-if or(sum(a,"r")<>[3+%s 0]) then bugmes();quit;end
-if or(sum(a+0,"r")<>[3+%s 0]) then bugmes();quit;end
-n="r";
-if or(sum(a,n)<>[3+%s 0]) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s 0]) then bugmes();quit;end
-if or(sum(a,2)<>[3+%s;1;-1]) then bugmes();quit;end
-if or(sum(a+0,2)<>[3+%s;1;-1]) then bugmes();quit;end
-n=2;
-if or(sum(a,n)<>[3+%s;1;-1]) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s;1;-1]) then bugmes();quit;end
-if or(sum(a,"c")<>[3+%s;1;-1]) then bugmes();quit;end
-if or(sum(a+0,"c")<>[3+%s;1;-1]) then bugmes();quit;end
-n="c";
-if or(sum(a,n)<>[3+%s;1;-1]) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s;1;-1]) then bugmes();quit;end
-a=[1+%s 2;-3 4;5 -6]+0*%i;
-if or(sum(a)<>3+%s+0*%i) then bugmes();quit;end
-if or(sum(a+0)<>3+%s+0*%i) then bugmes();quit;end
-if or(sum(a,1)<>[3+%s 0]+0*%i) then bugmes();quit;end
-if or(sum(a+0,1)<>[3+%s 0]+0*%i) then bugmes();quit;end
-n=1;
-if or(sum(a,n)<>[3+%s 0]+0*%i) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s 0]+0*%i) then bugmes();quit;end
-if or(sum(a,"r")<>[3+%s 0]+0*%i) then bugmes();quit;end
-if or(sum(a+0,"r")<>[3+%s 0]+0*%i) then bugmes();quit;end
-n="r";
-if or(sum(a,n)<>[3+%s 0]+0*%i) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s 0]+0*%i) then bugmes();quit;end
-if or(sum(a,2)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-if or(sum(a+0,2)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-n=2;
-if or(sum(a,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-if or(sum(a,"c")<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-if or(sum(a+0,"c")<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-n="c";
-if or(sum(a,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-if or(sum(a+0,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end
-//prod
-a=[1+%s 2;-3 4;5 -6];
-if prod(a)<>720+720*%s then bugmes();quit;end
-if prod(a+0)<>720+720*%s then bugmes();quit;end
-if or(prod(a,1)<>[-15-15*%s,-48]) then bugmes();quit;end
-if or(prod(a+0,1)<>[-15-15*%s,-48]) then bugmes();quit;end
-n=1;
-if or(prod(a,n)<>[-15-15*%s,-48]) then bugmes();quit;end
-if or(prod(a+0,n)<>[-15-15*%s,-48]) then bugmes();quit;end
-if or(prod(a,"r")<>[-15-15*%s,-48]) then bugmes();quit;end
-if or(prod(a+0,"r")<>[-15-15*%s,-48]) then bugmes();quit;end
-n="r";
-if or(prod(a,n)<>[-15-15*%s,-48]) then bugmes();quit;end
-if or(prod(a+0,n)<>[-15-15*%s,-48]) then bugmes();quit;end
-if or(prod(a,2)<>[2+2*%s;-12;-30]) then bugmes();quit;end
-if or(prod(a+0,2)<>[2+2*%s;-12;-30]) then bugmes();quit;end
-n=2;
-if or(prod(a,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end
-if or(prod(a+0,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end
-if or(prod(a,"c")<>[2+2*%s;-12;-30]) then bugmes();quit;end
-if or(prod(a+0,"c")<>[2+2*%s;-12;-30]) then bugmes();quit;end
-n="c";
-if or(prod(a,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end
-if or(prod(a+0,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end
-a=[1+%s 2;-3 4;5 -6]+0*%i;
-if or(prod(a)<>720+720*%s+0*%i) then bugmes();quit;end
-if or(prod(a+0)<>720+720*%s+0*%i) then bugmes();quit;end
-if or(prod(a,1)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-if or(prod(a+0,1)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-n=1;
-if or(prod(a,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-if or(prod(a+0,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-if or(prod(a,"r")<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-if or(prod(a+0,"r")<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-n="r";
-if or(prod(a,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-if or(prod(a+0,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end
-if or(prod(a,2)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-if or(prod(a+0,2)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-n=2;
-if or(prod(a,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-if or(prod(a+0,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-if or(prod(a,"c")<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-if or(prod(a+0,"c")<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-n="c";
-if or(prod(a,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-if or(prod(a+0,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end
-//diag
-a=[1+%s 2 3];
-if or(diag(a+0)<>[1+%s 0 0;0 2 0;0 0 3]) then bugmes();quit;end
-if or(diag(a)<>[1+%s 0 0;0 2 0;0 0 3]) then bugmes();quit;end
-if or(diag([1+%s %i 2])<>[1+%s 0 0;0 %i 0;0 0 2]) then bugmes();quit;end
-a=[1+%s %i 2 ];
-if or(diag(a)<>[1+%s 0 0;0 %i 0;0 0 2]) then bugmes();quit;end
-a=[1+%s 2 3 4;5 6 7 8];un=poly(1,"s","c");
-if or(diag(a)<>[1+%s;6]) then bugmes();quit;end
-if or(diag(a+0)<>[1+%s;6]) then bugmes();quit;end
-if or(diag(a,1)<>[2*un;7]) then bugmes();quit;end
-if or(diag(a+0,1)<>[2*un;7]) then bugmes();quit;end
-if or(diag(a,-1)<>[5*un]) then bugmes();quit;end
-if or(diag(a+0,-1)<>[5*un]) then bugmes();quit;end
-if diag(a,4)<>[] then bugmes();quit;end
-a(1,1)=%i+%s;
-if or(diag(a)<>[%i+%s;6]) then bugmes();quit;end
-if or(diag(a+0)<>[%i+%s;6]) then bugmes();quit;end
-if or(diag(a,1)<>[2*un;7]) then bugmes();quit;end
-if or(diag(a+0,1)<>[2*un;7]) then bugmes();quit;end
-if or(diag(a,-1)<>[5*un]) then bugmes();quit;end
-if or(diag(a+0,-1)<>[5*un]) then bugmes();quit;end
-if diag(a,4)<>[] then bugmes();quit;end
-//triu
-a=[1+%s 2 3 4;5 6 7 8];un=poly(1,"s","c");
-if or(triu(a)<>[1+%s 2 3 4;0 6 7 8]) then bugmes();quit;end
-if or(triu(a+0)<>[1+%s 2 3 4;0 6 7 8]) then bugmes();quit;end
-if or(triu(a,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end
-if or(triu(a+0,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end
-if or(triu(a,-1)<>a) then bugmes();quit;end
-if or(triu(a+0,-1)<>a) then bugmes();quit;end
-if or(triu(a,4)<>0*a) then bugmes();quit;end
-a(1,1)=%i+%s;
-if or(triu(a)<>[%i+%s 2 3 4;0 6 7 8]) then bugmes();quit;end
-if or(triu(a+0)<>[%i+%s 2 3 4;0 6 7 8]) then bugmes();quit;end
-if or(triu(a,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end
-if or(triu(a+0,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end
-if or(triu(a,-1)<>a) then bugmes();quit;end
-if or(triu(a+0,-1)<>a) then bugmes();quit;end
-if or(triu(a,4)<>0*a) then bugmes();quit;end
-//tril
-a=[1+%s 2 3 4;5 6 7 8];
-if or(tril(a)<>[1+%s 0 0 0;5 6 0 0]) then bugmes();quit;end
-if or(tril(a+0)<>[1+%s 0 0 0;5 6 0 0]) then bugmes();quit;end
-if or(tril(a,1)<>[1+%s 2 0 0;5 6  7 0]) then bugmes();quit;end
-if or(tril(a+0,1)<>[1+%s 2 0 0;5 6  7 0]) then bugmes();quit;end
-if or(tril(a,4)<>a) then bugmes();quit;end
-if or(tril(a+0,4)<>a) then bugmes();quit;end
-if or(tril(a,-3)<>0*a) then bugmes();quit;end
-a(1,1)=%i+%s;
-if or(tril(a)<>[%i+%s 0 0 0;5 6 0 0]) then bugmes();quit;end
-if or(tril(a+0)<>[%i+%s 0 0 0;5 6 0 0]) then bugmes();quit;end
-if or(tril(a,1)<>[%i+%s 2 0 0;5 6  7 0]) then bugmes();quit;end
-if or(tril(a+0,1)<>[%i+%s 2 0 0;5 6  7 0]) then bugmes();quit;end
-if or(tril(a,4)<>a) then bugmes();quit;end
-if or(tril(a+0,4)<>a) then bugmes();quit;end
-if or(tril(a,-3)<>0*a) then bugmes();quit;end
-//simp_mode
-a=%t;
-simp_mode(%t);
-if simp_mode()<>%t then bugmes();quit;end
-simp_mode(a);
-if simp_mode()<>%t then bugmes();quit;end
-[n,d]=simp(%s,%s);if n<>poly(1,"s","c")|d<>poly(1,"s","c") then bugmes();quit;end
-a=%f;
-simp_mode(%f);
-if simp_mode()<>%f then bugmes();quit;end
-simp_mode(a);
-if simp_mode()<>%f then bugmes();quit;end
-[n,d]=simp(%s,%s);if n<>%s|d<>%s then bugmes();quit;end
-//varn
-a=1+%s;
-if varn(a)<>"s" then bugmes();quit;end
-if varn(a+0)<>"s" then bugmes();quit;end
-if varn(a,"z")<>1+%z then bugmes();quit;end
-if varn(a+0,"z")<>1+%z then bugmes();quit;end
-nam="z";
-if varn(a,nam)<>1+%z then bugmes();quit;end
-if varn(a+0,nam)<>1+%z then bugmes();quit;end
-a=[];
-if varn(a,nam)<>[] then bugmes();quit;end
-if varn([],nam)<>[] then bugmes();quit;end
-//clean
-a=[1 1.d-12 1.d-5 2d8+%s];
-un=poly(1,"s","c");
-b=[1 0 1.d-5 2d8+%s];
-if or(clean(a)<>b) then bugmes();quit;end
-if or(clean(a+0)<>b) then bugmes();quit;end
-epsa=1.d-10;
-if or(clean(a,epsa)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa+0)<>b) then bugmes();quit;end
-epsr=1.d-4;b=[1 0 1.d-5 2d8*un];
-if or(clean(a,epsa,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa,epsr)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa+0,epsr+0)<>b) then bugmes();quit;end
-a=[1+%i 1.d-12 1.d-5 2d8+%s];
-b=[1+%i 0 1.d-5 2d8+%s];
-if or(clean(a)<>b) then bugmes();quit;end
-if or(clean(a+0)<>b) then bugmes();quit;end
-epsa=1.d-10;
-if or(clean(a,epsa)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa+0)<>b) then bugmes();quit;end
-epsr=1.d-5;b=[1+%i 0 1.d-5 2d8*un];
-if or(clean(a,epsa,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa,epsr)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end
-if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end
-if or(clean(a+0,epsa+0,epsr+0)<>b) then bugmes();quit;end
-//simp
-simp_mode(%t);
-p=[];
-[n,d]=simp(p,p);if n<>[]|p<>[] then bugmes();quit;end
-[n,d]=simp([],[]);if n<>[]|p<>[] then bugmes();quit;end
-un=poly(1,"s","c");p=%s;
-[n,d]=simp(p,p);if n<>un|d<>un then bugmes();quit;end
-[n,d]=simp(p+0,p);if n<>un|d<>un then bugmes();quit;end
-[n,d]=simp(p,p+0);if n<>un|d<>un then bugmes();quit;end
-[n,d]=simp(p+0,p+0);if n<>un|d<>un then bugmes();quit;end
-un=1;
-[n,d]=simp(p,un);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(p,1);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(p+0,un);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(p+0,1);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(un,p);if n<>un|d<>p then bugmes();quit;end
-[n,d]=simp(1,p);if n<>un|d<>p then bugmes();quit;end
-[n,d]=simp(un,p+0);if n<>un|d<>p then bugmes();quit;end
-[n,d]=simp(1,p+0);if n<>un|d<>p then bugmes();quit;end
-p=1+%s^10;un=poly(1,"s","c");
-[n,d]=simp(p,p);if n<>un|d<>un then bugmes();quit;end
-[n,d]=simp(p+0,p);if n<>un|d<>un then bugmes();quit;end
-[n,d]=simp(p,p+0);if n<>un|d<>un then bugmes();quit;end
-[n,d]=simp(p+0,p+0);if n<>un|d<>un then bugmes();quit;end
-un=1;
-[n,d]=simp(p,un);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(p,1);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(p+0,un);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(p+0,1);if n<>p|d<>1 then bugmes();quit;end
-[n,d]=simp(un,p);if n<>un|d<>p then bugmes();quit;end
-[n,d]=simp(1,p);if n<>un|d<>p then bugmes();quit;end
-[n,d]=simp(un,p+0);if n<>un|d<>p then bugmes();quit;end
-[n,d]=simp(1,p+0);if n<>un|d<>p then bugmes();quit;end
-un=poly(1,"s","c");p=%s;
-h=rlist(p,p,[]);un=rlist(poly(1,"s","c"),poly(1,"s","c"),[]);
-if simp(h)<>un then bugmes();quit;end
-if simp(rlist(p,p,[]))<>un then bugmes();quit;end
-h=rlist(p,1,[]);
-if simp(h)<>h then bugmes();quit;end
-if simp(rlist(p,1,[]))<>h then bugmes();quit;end
-h=rlist(1,p,[]);
-if simp(h)<>h then bugmes();quit;end
-if simp(rlist(1,p,[]))<>h then bugmes();quit;end
-p=1+%s^10;
-h=rlist(p,p,[]);un=rlist(poly(1,"s","c"),poly(1,"s","c"),[]);
-if simp(h)<>un then bugmes();quit;end
-if simp(rlist(p,p,[]))<>un then bugmes();quit;end
-h=rlist(p,1,[]);
-if simp(h)<>h then bugmes();quit;end
-if simp(rlist(p,1,[]))<>h then bugmes();quit;end
-h=rlist(1,p,[]);
-if simp(h)<>h then bugmes();quit;end
-if simp(rlist(1,p,[]))<>h then bugmes();quit;end
-//pdiv
-p=[];
-[n,d]=pdiv(p,p);if n<>[]|p<>[] then bugmes();quit;end
-[n,d]=pdiv([],[]);if n<>[]|p<>[] then bugmes();quit;end
-if pdiv(p,p)<>[] then bugmes();quit;end
-if pdiv([],[])<>[] then bugmes();quit;end
-p1=%s;p2=p1;
-[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-p1=%s;p2=1;
-[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-p1=1;p2=%s;
-[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-p1=%s+%i;p2=p1;
-[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-p1=%s;p2=1+%i;
-[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-p1=1+%i;p2=%s;
-[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end
-//
-p1=%s;p2=p1;
-[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-p1=%s;p2=1;
-[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-p1=1;p2=%s;
-[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-p1=%s+%i;p2=p1;
-[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-p1=%s;p2=1+%i;
-[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-p1=1+%i;p2=%s;
-[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end
-//bezout
-p1=%s;p2=p1;
-[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-p1=%s;p2=1;
-[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-p1=1;p2=%s;
-[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-p1=1;p2=1;
-[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps  then bugmes();quit;end
-//sfact
-p=(%s-1/2)*(2-%s);
-w=sfact(p); if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps  then bugmes();quit;end
-w=sfact(p+0);if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps  then bugmes();quit;end
-F1=[%z-1/2,%z+1/2,%z^2+2;1,%z,-%z;%z^3+2*%z,%z,1/2-%z];
-P=F1*gtild(F1,"d");
-F=sfact(P);if norm(coeff(P-F*gtild(F,"d")))>100*%eps  then bugmes();quit;end
-F=sfact(P+0);if norm(coeff(P-F*gtild(F,"d")))>100*%eps  then bugmes();quit;end
index fa0a56b..9021088 100644 (file)
@@ -6,6 +6,7 @@
 // =============================================================================
 
 // <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
 
 //poly (coeff)
 
@@ -564,8 +565,8 @@ p1=1;p2=1;
 
 //sfact
 p=(%s-1/2)*(2-%s);
-w=sfact(p); if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps  then pause,end
-w=sfact(p+0);if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps  then pause,end
+w=sfact(p); if norm(coeff(w*(horner(w,1/%s)).num-p))>10*%eps  then pause,end
+w=sfact(p+0);if norm(coeff(w*(horner(w,1/%s)).num-p))>10*%eps  then pause,end
 
 
 F1=[%z-1/2,%z+1/2,%z^2+2;1,%z,-%z;%z^3+2*%z,%z,1/2-%z];
index 61ef6c3..cf0a2f4 100644 (file)
@@ -87,8 +87,13 @@ function [y, z] = %_filter(b, a, x, z)
 
     if type_b == "polynomial" | type_a == "polynomial"
         c = b/a;
-        b = numer(c);
-        a = denom(c);
+        if type_a=="constant"
+            b = b/a
+            a = ones(a)
+        else
+            b = c.num;
+            a = c.den;
+        end
         deg_b = degree(b);
         deg_a = degree(a);
         deg = max(deg_b, deg_a);
diff --git a/scilab/modules/signal_processing/tests/nonreg_tests/bug_9851.dia.ref b/scilab/modules/signal_processing/tests/nonreg_tests/bug_9851.dia.ref
deleted file mode 100644 (file)
index 9d0d807..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-//
-// <-- CLI SHELL MODE -->
-//
-// <-- Non-regression test for bug 9851 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=9851
-//
-// <-- Short Description -->
-// Error message occurs because of a cut-off frequency of 0.25Hz with irr
-hz=iir(2,'lp','butt',[0.25 0.25],[0 0]);
-z=poly(0,'z');
-num=0.292893218813+0.585786437627*z+0.292893218813*z^2;
-den=0.171572875254+5.55111512d-17*z+z^2;
-assert_checkalmostequal(coeff(numer(hz)), coeff(num), 1d-9);
-assert_checkalmostequal(coeff(denom(hz)), coeff(den), 1d-9);
index fba8c8f..41c4699 100644 (file)
@@ -6,11 +6,12 @@
 // =============================================================================
 //
 // <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
 //
 // <-- Non-regression test for bug 9851 -->
 //
 // <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=9851
+// http://bugzilla.scilab.org/9851
 //
 // <-- Short Description -->
 // Error message occurs because of a cut-off frequency of 0.25Hz with irr
@@ -19,5 +20,5 @@ hz=iir(2,'lp','butt',[0.25 0.25],[0 0]);
 z=poly(0,'z');
 num=0.292893218813+0.585786437627*z+0.292893218813*z^2;
 den=0.171572875254+5.55111512d-17*z+z^2;
-assert_checkalmostequal(coeff(numer(hz)), coeff(num), 1d-9);
-assert_checkalmostequal(coeff(denom(hz)), coeff(den), 1d-9);
+assert_checkalmostequal(coeff(hz.num), coeff(num), 1d-9);
+assert_checkalmostequal(coeff(hz.den), coeff(den), 1d-9);
index 4bd6643..262c111 100644 (file)
@@ -95,9 +95,11 @@ std::unordered_map<std::wstring, std::wstring> DeprecatedChecker::initDep()
     // Scilab 6.0.x => 6.1.0
     map.emplace(L"_d", L"_");
     map.emplace(L"dgettext", L"gettext");
+    map.emplace(L"denom", L".den");
     map.emplace(L"lstsize", L"size");
     map.emplace(L"nanmin", L"min");
     map.emplace(L"nanmax", L"max");
+    map.emplace(L"numer", L".num");
     map.emplace(L"square", L"replot");
     map.emplace(L"xgetech", L"gca");