File: test28.m

package info (click to toggle)
suitesparse 1%3A5.12.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 176,720 kB
  • sloc: ansic: 1,193,914; cpp: 31,704; makefile: 6,638; fortran: 1,927; java: 1,826; csh: 765; ruby: 725; sh: 529; python: 333; perl: 225; sed: 164; awk: 35
file content (61 lines) | stat: -rw-r--r-- 1,164 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function test28
%TEST28 test nesdis
% Example:
%   test28
% See also cholmod_test

% Copyright 2007, Timothy A. Davis, http://www.suitesparse.com

index = ssget ;

[ignore f] = sort (index.nnz) ;

% f = find (index.nrows < index.ncols) ;
% [ignore i] = sort (index.nnz (f)) ;
% f = f (i) ;

f = f (1:100) ;

for i = f

    try

	Prob = ssget (i, index) ;
	A = spones (Prob.A) ;
	[m n] = size (A) ;

	if (m < n)
	    A = A*A' ;
	elseif (m > n) ;
	    A = A'*A ;
	else
	    A = A+A' ;
	end

	% default: do not split connected components
	[p1 cp1 cmem1] = nesdis (A) ;					    %#ok

	% order connected components separately
	[p2 cp2 cmem2] = nesdis (A, 'sym', [200 1]) ;			    %#ok
	c1 = symbfact (A (p1,p1)) ;
	c2 = symbfact (A (p2,p2)) ;
	lnz1 = sum (c1) ;
	lnz2 = sum (c2) ;
	fprintf ('%35s %8d %8d ', Prob.name, lnz1, lnz2)
	if (lnz1 == lnz2)
	    fprintf ('        1\n') ;
	else
	    fprintf (' %8.3f\n', lnz1/lnz2) ;
	end

	subplot (2,3,1) ; spy (A) ;
	subplot (2,3,2) ; spy (A (p1,p1)) ;
	subplot (2,3,3) ; treeplot (cp1) ;
	subplot (2,3,5) ; spy (A (p2,p2)) ;
	subplot (2,3,6) ; treeplot (cp2) ;
	drawnow

    catch
	fprintf ('%4d failed\n', i) ;
    end
end