sparse: make tests pass
[scilab.git] / scilab / modules / sparse / tests / nonreg_tests / bug_2003.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr>
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- CLI SHELL MODE -->
8 // <-- Non-regression test for bug 2003 -->
9 //
10 // <-- Bugzilla URL -->
11 // http://bugzilla.scilab.org/show_bug.cgi?id=2003
12 //
13 // <-- Short Description -->
14 //lusolve crashes scilab when handle has been freed
15 a=[0.2,0.6,0.6,0.2,0.3;
16 0.8,0.8,0.7,0.2,0.9;
17 0,0.7,0.7,0.2,0.2;
18 0.3,0.9,0.2,0.9,0.3;
19 0.7,0.1,0.5,0.7,0.4];
20 b=[0.3;0.6;0.5;0.3;0.6];
21 A=sparse(a);
22 [h,rk]=lufact(A);
23 x=lusolve(h,b);
24 if norm(a*x-b)>1d-10 then bugmes();quit;end
25 [P,L,U,Q]=luget(h);
26 if norm(P*L*U*Q-A)>1d-10 then bugmes();quit;end
27 ludel(h)
28 if execstr("x=lusolve(h,b);","errcatch")<>999 then bugmes();quit;end
29 if execstr("ludel(h);","errcatch")<>999 then bugmes();quit;end
30 if execstr("[P,L,U,Q]=luget(h);","errcatch")<>999 then bugmes();quit;end
31 //try to allocate a lot of handles
32 for k=1:20
33     [h1,rk]=lufact(A);
34 end
35 x=lusolve(h1,b);
36 if norm(a*x-b)>1d-10 then bugmes();quit;end