1function etree_sample
2% ETREE_SAMPLE construct a sample etree and symbolic factorization
3%
4% Example
5%   etree_sample
6% See also: testall
7
8% Copyright 2006-2012, Timothy A. Davis, http://www.suitesparse.com
9
10clf
11
12% desired etree:
13%       1 2 3 4 5 6 7  8  9 10 11
14goal = [6 3 8 6 8 7 9 10 10 11  0] ;
15
16o = 0 ;
17X = 1 ;
18x = 0 ;
19
20A = [
211 o o o o o o o o o o
22o 2 o o o o o o o o o
23o X 3 o o o o o o o o
24o o o 4 o o o o o o o
25o o o o 5 o o o o o o
26X o o X o 6 o o o o o
27X o o x o x 7 o o o o
28o X x o X o o 8 o o o
29x o o x o X x o 9 o o
30x x X X x X x X x 10 o
31x x X x X x X X x X 11 ] ;
32
33A = A + tril(A,-1)' ;
34disp ('A = ') ;
35disp (A)
36
37[count,h,parent,post,R] = symbfact (A) ;
38L = R' ;
39
40subplot (2,3,1) ;
41spy (A)
42title ('A') ;
43
44subplot (2,3,2) ;
45etreeplot (A)
46title ('etree') ;
47
48% [parent, post] = etree (A) ;
49
50subplot (2,3,3) ;
51spy (L)
52title ('L, not postordered') ;
53
54n = size (A,1) ;
55for k = 1:n
56    fprintf ('parent (%d) = %d  goal: %d   ok: %d\n', ...
57        k, parent (k), goal (k), goal (k) == parent(k)) ;
58end
59
60
61[count,h,parent2,post2,R] = symbfact (A (post,post)) ;
62L = R' ;
63
64subplot (2,3,5) ;
65spy (A (post,post))
66title ('A postordered') ;
67
68subplot (2,3,6) ;
69spy (L)
70title ('L postordered') ;
71