6
% See also btf, maxtrans, strongcomp, dmperm, UFget,
7
% test1, test2, test3, test4, test5.
9
% Copyright 2007, Timothy A. Davis, University of Florida
12
1522 -272 1463 1521 460 1507 -838 1533 -1533 -1456 -1512 734 211 ...
13
-385 -735 394 -397 1109 -744 ...
14
-734 -375 -1200 -1536 -837 519 -519 520 -520 189 -189 454 385 ...
15
387 -387 384 -384 386 -386 388 -388 525 -525 526 -526 735 ...
16
1508 209 210 1243 -1243 1534 -840 1234 -1234 390 -390 392 -392 ...
17
-394 1472 1242 -1242 389 -389 391 -391 393 -393 1215 -1215 1216 ...
18
-1216 736 -736 737 -737 455 -455 -224 -839 1426 -1426 -1473 396 ...
19
-396 398 -398 400 -400 402 -402 404 -404 -1531 395 -395 397 ...
20
399 -399 401 -401 403 -403 405 -405 -738 -739 1459 -1459 1111 ...
21
1110 376 -376 284 -284 -740 -742 -741 -743 1293 -1293 452 920 ...
22
-745 -446 1462 -1461 448 -448 283 -283 1502 -1502 1292 -1292 1503 ...
23
-1503 1291 -1291 445 -445 -746 -747 1300 -1300 435 -435 -1343 -1345 ...
24
-1344 1305 -1305 921 -1513 1307 -1307 1369 -1369 1374 -1374 1377 ...
25
-1377 748 -748 -749 1510 922 -922 ] ;
28
nmat = length (quick2) ;
31
h = waitbar (0, 'BTF test 6 of 6') ;
40
Prob = UFget (abs (i), index) ;
43
fprintf ('transposed\n') ;
47
if (nnz (spones (A) - spones (Prob.A)) == 0)
48
fprintf ('skip...\n') ;
57
[p1,q1,r1,work1] = btf (A) ;
59
n1 = length (r1) - 1 ;
60
m1 = nnz (diag (A (p1, abs (q1)))) ;
62
limit = work1/nnz(A) ;
64
fprintf ('full search: %g * nnz(A)\n', limit) ;
66
works = linspace(0,limit,9) ;
78
fprintf ('full time %10.4f blocks %8d nnz(diag) %8d\n\n', t1, n1, m1) ;
81
drawbtf (A, p1, abs (q1), r1) ;
82
title (Prob.name, 'Interpreter', 'none') ;
89
[p2,q2,r2,work2] = btf (A, maxwork) ;
91
n2 = length (r2) - 1 ;
92
m2 = nnz (diag (A (p2, abs (q2)))) ;
97
fprintf ('%9.1f %10.4f blocks %8d nnz(diag) %8d\n', ...
98
maxwork, t2, n2, m2) ;
101
drawbtf (A, p2, abs (q2), r2) ;
102
title (sprintf ('%g', maxwork)) ;
107
plot (works(ss), T2(ss), 'o-') ; title ('time vs work') ;
108
axis ([0 limit 0 max(0.1,max(T2))]) ;
111
plot (works(ss), N2(ss), 'o-') ; title ('blocks vs work') ;
112
axis ([0 limit 0 n1]) ;
115
plot (works(ss), M2(ss), 'o-') ; title ('nnz(diag) vs work') ;
116
axis ([0 limit 0 m1]) ;
120
fprintf ('full time %10.4f blocks %8d nnz(diag) %8d\n', t1, n1, m1) ;
123
input ('hit enter: ') ;
129
% out-of-memory is OK, other errors are not
131
if (isempty (strfind (lasterr, 'Out of memory')))
132
error (lasterr) ; %#ok
134
fprintf ('test terminated early, but otherwise OK\n') ;