Polynomials: fix for lcm and gcd 41/12141/2
Paul BIGNIER [Fri, 26 Jul 2013 07:04:44 +0000 (09:04 +0200)]
There was no reason for lcm & gcd to refuse complex polynomials.

bug_5686.tst now passes.

Change-Id: I6379cd06ad0ef633ddc1449a4739def57532425c

scilab/modules/polynomials/macros/gcd.sci
scilab/modules/polynomials/macros/lcm.sci
scilab/modules/polynomials/tests/nonreg_tests/bug_12679.dia.ref
scilab/modules/polynomials/tests/nonreg_tests/bug_12679.tst

index c7d4750..58cb1d8 100644 (file)
@@ -22,8 +22,6 @@ function [x, uu] = gcd(p)
     if type(p)==8 then
         if lhs==2 then [x,uu]=%i_gcd(p), else x=%i_gcd(p), end
         return
-    elseif ~isreal(p) then
-        error(msprintf(_("%s: Wrong type for argument #%d: Real Polynomial expected.\n"), "gcd", 1));
     end
 
     [m, n] = size(p)
index 74ebe34..6c6e2c6 100644 (file)
@@ -21,8 +21,6 @@ function [p, fact] = lcm(p)
     if type(p)==8 then
         if argn(1)==2 then [p, fact] = %i_lcm(p), else p = %i_lcm(p), end
         return
-    elseif ~isreal(p) then
-        error(msprintf(_("%s: Wrong type for argument #%d: Real Polynomial expected.\n"), "lcm", 1));
     end
 
     [m, n] = size(p),
index d12bca7..61c2ce2 100644 (file)
@@ -8,7 +8,6 @@
 // <-- Non-regression test for bug 12679 -->
 //
 // <-- CLI SHELL MODE -->
-// <-- ENGLISH IMPOSED -->
 //
 // <-- Bugzilla URL -->
 // http://bugzilla.scilab.org/show_bug.cgi?id=12679
@@ -23,10 +22,6 @@ p = [s, s*(s+1)^2, 2*s^2+s^3];
 [pgcd, u] = gcd(p);
 assert_checkequal(p*u, [0 0 s]);
 // Complex polynomials should yield an error
-s = poly(%i, 's');
-p = [s, s*(s+1)^2,2*s^2+s^3];
-refMsg = msprintf(_("%s: Wrong type for argument #%d: Real Polynomial expected.\n"), "gcd", 1);
-assert_checkerror("[pgcd, u] = gcd(p);", refMsg);
 // Normal behavior, with integers
 V = int32([2^2*3^5, 2^3*3^2, 2^2*3^4*5]);
 [thegcd, U] = gcd(V);
@@ -43,11 +38,6 @@ s = poly(0, 's');
 p = [s, s*(s+1)^2, s^2*(s+2)];
 [pp, fact] = lcm(p);
 assert_checkequal(pp, [2*s^2 + 5*s^3 + 4*s^4 + s^5]);
-// Complex polynomials should yield an error
-s = poly(%i, 's');
-p = [s, s*(s+1)^2, s^2*(s+2)];
-refMsg3 = msprintf(_("%s: Wrong type for argument #%d: Real Polynomial expected.\n"), "lcm", 1);
-assert_checkerror("[pp, fact] = lcm(p);", refMsg3);
 // Normal behavior, with integers
 V = int32([2^2*3^5, 2^3*3^2, 2^2*3^4*5]);
 assert_checkequal(lcm(V), int32(9720));
index 2f22a39..f30eeaf 100644 (file)
@@ -8,7 +8,6 @@
 // <-- Non-regression test for bug 12679 -->
 //
 // <-- CLI SHELL MODE -->
-// <-- ENGLISH IMPOSED -->
 //
 // <-- Bugzilla URL -->
 // http://bugzilla.scilab.org/show_bug.cgi?id=12679
@@ -25,10 +24,6 @@ p = [s, s*(s+1)^2, 2*s^2+s^3];
 [pgcd, u] = gcd(p);
 assert_checkequal(p*u, [0 0 s]);
 // Complex polynomials should yield an error
-s = poly(%i, 's');
-p = [s, s*(s+1)^2,2*s^2+s^3];
-refMsg = msprintf(_("%s: Wrong type for argument #%d: Real Polynomial expected.\n"), "gcd", 1);
-assert_checkerror("[pgcd, u] = gcd(p);", refMsg);
 
 // Normal behavior, with integers
 V = int32([2^2*3^5, 2^3*3^2, 2^2*3^4*5]);
@@ -48,11 +43,6 @@ s = poly(0, 's');
 p = [s, s*(s+1)^2, s^2*(s+2)];
 [pp, fact] = lcm(p);
 assert_checkequal(pp, [2*s^2 + 5*s^3 + 4*s^4 + s^5]);
-// Complex polynomials should yield an error
-s = poly(%i, 's');
-p = [s, s*(s+1)^2, s^2*(s+2)];
-refMsg3 = msprintf(_("%s: Wrong type for argument #%d: Real Polynomial expected.\n"), "lcm", 1);
-assert_checkerror("[pp, fact] = lcm(p);", refMsg3);
 
 // Normal behavior, with integers
 V = int32([2^2*3^5, 2^3*3^2, 2^2*3^4*5]);