[core] fix NR tests failing after 50fe1d14 93/20693/3
St├ęphane Mottelet [Mon, 14 Jan 2019 15:23:13 +0000 (16:23 +0100)]
Change-Id: I9f0c5dfa2a2157f2cc514564d6953ad2f638ccfe

scilab/modules/core/tests/unit_tests/LU.tst
scilab/modules/core/tests/unit_tests/QR.tst

index adf9beb..c594366 100644 (file)
@@ -1,28 +1,31 @@
-//<-- 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 LU
 
 pi=%pi;
-i=%i;
+I=eye(4,4);
+IC=%i*I;
 e=%e;
 
-a=rand(4,4);b=rand(5,4);ac=a+i*rand(4,4);bc=b+i*rand(5,4);
-assert_checktrue(abs((1/a)*a-eye())< 100*%eps);
-assert_checktrue(abs((i/a)*a-i*eye())< 100*%eps);
-assert_checktrue(abs((1/ac)*ac-eye())< 100*%eps);
-assert_checktrue(abs((i/ac)*ac-i*eye())< 100*%eps);
-assert_checktrue(abs(a*(a\1)-eye())< 100*%eps);
-assert_checktrue(abs(a*(a\i)-i*eye())< 100*%eps);
-assert_checktrue(abs(ac*(ac\1)-eye())< 100*%eps);
-assert_checktrue(abs(ac*(ac\i)-eye()*i)< 100*%eps);
-//
-assert_checktrue(abs(inv(a)*a-eye())< 100*%eps);
-assert_checktrue(abs(inv(ac)*ac-eye())< 100*%eps);
+a=rand(4,4);b=rand(5,4);ac=a+%i*rand(4,4);bc=b+%i*rand(5,4);
+assert_checktrue(abs((I/a)*a-I)< 100*%eps);
+assert_checktrue(abs((IC/a)*a-IC)< 100*%eps);
+assert_checktrue(abs((I/ac)*ac-I)< 100*%eps);
+assert_checktrue(abs((IC/ac)*ac-IC)< 100*%eps);
+assert_checktrue(abs(a*(a\I)-I)< 100*%eps);
+assert_checktrue(abs(a*(a\IC)-IC)< 100*%eps);
+assert_checktrue(abs(ac*(ac\I)-I)< 100*%eps);
+assert_checktrue(abs(ac*(ac\IC)-IC)< 100*%eps);
+//
+assert_checktrue(abs(inv(a)*a-I)< 100*%eps);
+assert_checktrue(abs(inv(ac)*ac-I)< 100*%eps);
 //
 assert_checktrue(abs((b/a)*a-b)< 100*%eps);
 assert_checktrue(abs((b/ac)*ac-b)< 100*%eps);
index 0c15d69..f7e219f 100644 (file)
@@ -1,35 +1,40 @@
-//<-- 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 QR
 pi=%pi;
-i=%i;
 e=%e;
-
-a=rand(3,4);b=rand(3,4);ac=a+i*rand(3,4);bc=b+i*rand(3,4);
-//
-assert_checktrue(abs(a*(1/a)*a-a)< 10*%eps);
-assert_checktrue(abs(a*(i/a)*a-i*a)< 10*%eps);
-assert_checktrue(abs(a*(a\ 1)*a-a)< 10*%eps);
-assert_checktrue(abs(a*(a\ i)*a-i*a)< 10*%eps);
-assert_checktrue(abs(ac*(1/ac)*ac-ac)< 10*%eps);
-assert_checktrue(abs(ac*(i/ac)*ac-i*ac)< 10*%eps);
-assert_checktrue(abs(ac*(ac\ 1)*ac-ac)< 10*%eps);
-assert_checktrue(abs(ac*(ac\ i)*ac-i*ac)< 10*%eps);
-//
-assert_checktrue(abs(a/b-a*(1/b))< 10*%eps);
-assert_checktrue(abs(ac/b-ac*(1/b))< 10*%eps);
-assert_checktrue(abs(a/bc-a*(1/bc))< 10*%eps);
-assert_checktrue(abs(ac/bc-ac*(1/bc))< 10*%eps);
-//
-assert_checktrue(abs(a\ b -(a\ 1)*b)< 10*%eps);
-assert_checktrue(abs(a\ bc-(a\ 1)*bc)< 10*%eps);
-assert_checktrue(abs(ac\ b-(ac\ 1)*b)< 10*%eps);
-assert_checktrue(abs(ac\ bc-(ac\ 1)*bc)< 10*%eps);
+I3=eye(3,3);
+I4=eye(4,4);
+IC3=%i*I3;
+IC4=%i*I4;
+a=rand(3,4);b=rand(3,4);ac=a+%i*rand(3,4);bc=b+%i*rand(3,4);
+//
+assert_checktrue(abs(a*(I4/a)*a-a)< 10*%eps);
+assert_checktrue(abs(a*(IC4/a)*a-%i*a)< 10*%eps);
+assert_checktrue(abs(a*(a\ I3)*a-a)< 10*%eps);
+assert_checktrue(abs(a*(a\ IC3)*a-%i*a)< 10*%eps);
+assert_checktrue(abs(ac*(I4/ac)*ac-ac)< 10*%eps);
+assert_checktrue(abs(ac*(IC4/ac)*ac-%i*ac)< 10*%eps);
+assert_checktrue(abs(ac*(ac\ I3)*ac-ac)< 10*%eps);
+assert_checktrue(abs(ac*(ac\ IC3)*ac-%i*ac)< 10*%eps);
+//
+assert_checktrue(abs(a/b-a*(I4/b))< 10*%eps);
+assert_checktrue(abs(ac/b-ac*(I4/b))< 10*%eps);
+assert_checktrue(abs(a/bc-a*(I4/bc))< 10*%eps);
+assert_checktrue(abs(ac/bc-ac*(I4/bc))< 10*%eps);
+//
+assert_checktrue(abs(a\ b -(a\ I3)*b)< 10*%eps);
+assert_checktrue(abs(a\ bc-(a\ I3)*bc)< 10*%eps);
+assert_checktrue(abs(ac\ b-(ac\ I3)*b)< 10*%eps);
+assert_checktrue(abs(ac\ bc-(ac\ I3)*bc)< 10*%eps);
 //
 //elemt-wise
 a=rand(3,2);ai=a+rand(3,2)*%i;
@@ -87,7 +92,7 @@ assert_checktrue(abs(p*r-ac)< 100*%eps);
 assert_checktrue(abs(p*r-ac*x)< 100*%eps);
 //
 assert_checktrue(abs(cond(diag([1 2 3 4]))-4)< 10*%eps);
-assert_checktrue(abs(cond(diag([1 i 3 4]))-4)< 10*%eps);
+assert_checktrue(abs(cond(diag([1 %i 3 4]))-4)< 10*%eps);
 v=[1 2 3 4 5];
 assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
 assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
@@ -98,7 +103,7 @@ assert_checktrue(abs(norm(v,1)-15)< 10*%eps);
 assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
 assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
 assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
-v=[i 2 3 4 5];
+v=[%i 2 3 4 5];
 assert_checktrue(abs(norm(v,'inf')-5)< 10*%eps);
 assert_checktrue(abs(norm(v,2)-sqrt(55))< 10*%eps);
 assert_checktrue(abs(norm(v,'fro')-sqrt(55))< 10*%eps);
@@ -117,7 +122,7 @@ assert_checktrue(abs(norm(a,1)-3)< 10*%eps);
 assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
 assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
 assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
-a=[diag([i,2,3]),[0;0;0]];
+a=[diag([%i,2,3]),[0;0;0]];
 assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
 assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
 assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
@@ -127,7 +132,7 @@ assert_checktrue(abs(norm(a,'inf')-3)< 10*%eps);
 assert_checktrue(abs(norm(a,2)-3)< 10*%eps);
 assert_checktrue(abs(norm(a,'fro')-sqrt(14))< 10*%eps);
 //
-a=rand(3,5);ac=a+i*rand(3,5);
+a=rand(3,5);ac=a+%i*rand(3,5);
 [u,s,v]=svd(a);u*s*v'-a;
 assert_checktrue(abs(svd(a)-diag(s))< 10*%eps);
 [u,s,v]=svd(ac);u*s*v'-ac;
@@ -138,7 +143,7 @@ assert_checktrue(abs(svd(a,0)-diag(s,0))< 10*%eps);
 [u,s,v]=svd(ac,0);u*s*v'-ac;
 assert_checktrue(abs(svd(ac,0)-diag(s))< 10*%eps);
 a=a';ac=ac';
-a=rand(3,5);ac=a+i*rand(3,5);
+a=rand(3,5);ac=a+%i*rand(3,5);
 [u,s,v]=svd(a);u*s*v'-a;
 assert_checktrue(abs(svd(a)-diag(s))< 10*%eps);
 [u,s,v]=svd(ac);u*s*v'-ac;