File: etree_sample.m

package info (click to toggle)
suitesparse 1%3A7.10.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 254,920 kB
  • sloc: ansic: 1,134,743; cpp: 46,133; makefile: 4,875; fortran: 2,087; java: 1,826; sh: 996; ruby: 725; python: 495; asm: 371; sed: 166; awk: 44
file content (71 lines) | stat: -rw-r--r-- 1,241 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
62
63
64
65
66
67
68
69
70
71
function etree_sample
% ETREE_SAMPLE construct a sample etree and symbolic factorization
%
% Example
%   etree_sample
% See also: testall

% CXSparse, Copyright (c) 2006-2022, Timothy A. Davis. All Rights Reserved.
% SPDX-License-Identifier: LGPL-2.1+

clf

% desired etree:
%       1 2 3 4 5 6 7  8  9 10 11
goal = [6 3 8 6 8 7 9 10 10 11  0] ;

o = 0 ;
X = 1 ;
x = 0 ;

A = [
1 o o o o o o o o o o
o 2 o o o o o o o o o
o X 3 o o o o o o o o
o o o 4 o o o o o o o
o o o o 5 o o o o o o
X o o X o 6 o o o o o
X o o x o x 7 o o o o
o X x o X o o 8 o o o
x o o x o X x o 9 o o
x x X X x X x X x 10 o
x x X x X x X X x X 11 ] ;

A = A + tril(A,-1)' ;
disp ('A = ') ;
disp (A)

[count,h,parent,post,R] = symbfact (A) ;
L = R' ;

subplot (2,3,1) ;
spy (A)
title ('A') ;

subplot (2,3,2) ;
etreeplot (A)
title ('etree') ;

% [parent, post] = etree (A) ;

subplot (2,3,3) ;
spy (L)
title ('L, not postordered') ;

n = size (A,1) ;
for k = 1:n
    fprintf ('parent (%d) = %d  goal: %d   ok: %d\n', ...
        k, parent (k), goal (k), goal (k) == parent(k)) ;
end


[count,h,parent2,post2,R] = symbfact (A (post,post)) ;
L = R' ;

subplot (2,3,5) ;
spy (A (post,post))
title ('A postordered') ;

subplot (2,3,6) ;
spy (L)
title ('L postordered') ;