* Bug #6314 fixed - The identical code of %p_m_r() and %r_m_p() was not factorized 92/17892/4
Nicolas [Thu, 10 Mar 2016 14:07:15 +0000 (15:07 +0100)]
Change-Id: I89ec7c9654c4b78db616d454a34925fc8ba22dd3

scilab/CHANGES
scilab/modules/overloading/macros/%r_m_p.sci

index 1a4364a..f9996bd 100644 (file)
@@ -309,9 +309,11 @@ Bug Fixes
 
 In 6.0.0:
 
+* Bug #6314 fixed  - The identical code of %p_m_r() and  %r_m_p() was not factorized
+
 * Bug #9456 fixed  - bench_run did not work on a path or in a toolbox
 
-* Bug #13810  fixed - householder(v, k*v) returned column of %nan. Input parameters were not checked. The Householder matrix could not be returned. Help pages were inaccurate and without examples. There was no householder() demo.
+* Bug #13810 fixed - householder(v, k*v) returned column of %nan. Input parameters were not checked. The Householder matrix could not be returned. Help pages were inaccurate and without examples. There was no householder() demo.
 
 * Bug #13869 fixed - bench_run with option nb_run=10 did not override the NB RUN tags
 
index afa5d50..8ed66ec 100644 (file)
@@ -1,6 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA
-//
+// Copyright (C) 2009 - 2016 - Samuel GOUGEON
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function [f1]=%r_m_p(f1,n2)
-    // r=%r_m_p(f1,n2)  <=> r=f1*n2
-    // f1=rational n2=polynomial
-    //!
-
-    [n1,d1]=f1(["num","den"]),
-    [l1,m1]=size(n1);[l2,m2]=size(n2),
-    //
-    indef=%f
-    if l1==-1 then
-        n1=n1+0;d1=d1+0;l1=1;m1=1;
-        if l2*m2==1 then indef=%t,else error(14),end
-    end
-    if l2==-1 then
-        n2=n2+0;l2=1;m2=1;
-        if l1*m1==1 then indef=%t,else error(14),end
-    end
-    if min([l1*m1,l2*m2])==1 then,
-        num=n1*n2,
-        den=d1*ones(l2,m2),
-    else,
-        if m1<>l2 then error(10),end,
-        for i=1:l1,
-            n=n1(i,:);
-            [y,fact]=lcm(d1(i,:)),
-            den(i,1:m2)=ones(1,m2)*y,
-            for j=1:m2,
-                num(i,j)=n*(n2(:,j).*matrix(fact,l2,1)),
-            end,
-        end,
-    end,
-    if ndims(num)<=2 then
-        [num,den]=simp(num,den),
-    else
-        sz=size(num)
-        [num,den]=simp(num(:),den(:)),
-        num=matrix(num,sz)
-        den=matrix(den,sz)
-    end
-    if indef then
-        num=num*eye()
-        den=den*eye()
-    end
-    f1=rlist(num,den,f1("dt"))
+function [f1] = %r_m_p(r1,p2)
+    // r = %r_m_p(r1, p2)  <=> r = r1*p2
+    // r1 = rational p2 = polynomial
+    f1 = p2*r1;
 endfunction