1//<-- CLI SHELL MODE --> 2// ============================================================================= 3// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab 4// Copyright (C) ????-2008 - INRIA 5// 6// This file is distributed under the same license as the Scilab package. 7// ============================================================================= 8// Unit test for Scilab LU 9pi=%pi; 10i=%i; 11e=%e; 12a=rand(4,4);b=rand(5,4);ac=a+i*rand(4,4);bc=b+i*rand(5,4); 13assert_checktrue(abs((1/a)*a-eye())< 100*%eps); 14assert_checktrue(abs((i/a)*a-i*eye())< 100*%eps); 15assert_checktrue(abs((1/ac)*ac-eye())< 100*%eps); 16assert_checktrue(abs((i/ac)*ac-i*eye())< 100*%eps); 17assert_checktrue(abs(a*(a\1)-eye())< 100*%eps); 18assert_checktrue(abs(a*(a\i)-i*eye())< 100*%eps); 19assert_checktrue(abs(ac*(ac\1)-eye())< 100*%eps); 20assert_checktrue(abs(ac*(ac\i)-eye()*i)< 100*%eps); 21// 22assert_checktrue(abs(inv(a)*a-eye())< 100*%eps); 23assert_checktrue(abs(inv(ac)*ac-eye())< 100*%eps); 24// 25assert_checktrue(abs((b/a)*a-b)< 100*%eps); 26assert_checktrue(abs((b/ac)*ac-b)< 100*%eps); 27assert_checktrue(abs((bc/a)*a-bc)< 100*%eps); 28assert_checktrue(abs((bc/ac)*ac-bc)< 100*%eps); 29// 30assert_checktrue(abs(a*(a\b')-b')< 100*%eps); 31assert_checktrue(abs(ac*(ac\b')-b')< 100*%eps); 32assert_checktrue(abs(a*(a\bc')-bc')< 100*%eps); 33assert_checktrue(abs(ac*(ac\bc')-bc')< 100*%eps); 34// 35[l u]=lu(a); 36assert_checktrue(abs(l*u-a)< 100*%eps); 37[l u]=lu(ac); 38assert_checktrue(abs(l*u-ac)< 100*%eps); 39// 40h1(5,5)=0;for k=1:5,for l=1:5, h1(k,l)=1/(k+l-1);end;end; 41assert_checkalmostequal(inv(h1),testmatrix("hilb",5)); 42// 43assert_checktrue(abs(det(testmatrix("magic",5))-5070000)< 1.e-7); 44// 45b=a*a';h=chol(b); 46assert_checkalmostequal(h'*h, b, [], 100*%eps); 47bc=triu(ac*ac');bc=bc+bc'-diag(real(diag(bc)));;h=chol(bc); 48assert_checkalmostequal(h'*h, bc, [], 100*%eps); 49