Add the <-- JVM NOT MANDATORY --> TAG
[scilab.git] / scilab / modules / umfpack / tests / unit_tests / taucs_chfact.tst
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2007-2008 - Bruno PINCON
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7
8 // <-- JVM NOT MANDATORY -->
9
10 // Example #1 : a small linear test system 
11 // whom solution must be [1;2;3;4;5]
12 A = sparse( [ 2 -1  0  0  0;
13              -1  2 -1  0  0; 
14               0 -1  2 -1  0; 
15               0  0 -1  2 -1; 
16               0  0  0 -1  2] );
17 b = [0 ; 0; 0; 0; 6];
18 Cp = taucs_chfact(A);
19 x = taucs_chsolve(Cp,b);
20 if round(x) <> [ 1; 2; 3; 4; 5 ] then pause, end
21
22 // don't forget to clear memory with
23 taucs_chdel(Cp)
24
25 // Example #2 a real example
26 // first load a sparse matrix
27 [A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa");
28 // compute the factorisation
29 Cp = taucs_chfact(A); 
30 b = rand(size(A,1),1); // a random rhs
31 // use taucs_chsolve for solving Ax=b
32 x = taucs_chsolve(Cp,b);
33 firstNorm=norm(A*x - b);
34 // the same with one iterative refinement step
35 x = taucs_chsolve(Cp,b,A);
36 secondNorm=norm(A*x - b);
37
38 if norm(firstNorm,secondNorm) < 1E-7 then pause, end
39
40 // don't forget to clear memory
41 taucs_chdel(Cp)