File: dataStructure.tex

package info (click to toggle)
spooles 2.2-9
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 19,012 kB
  • sloc: ansic: 146,834; csh: 3,615; makefile: 2,040; perl: 74
file content (97 lines) | stat: -rw-r--r-- 3,219 bytes parent folder | download | duplicates (7)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
\par
\section{Data Structure}
\label{section:SubMtx:dataStructure}
\par
\par
The {\tt SubMtx} structure has the following fields.
\begin{itemize}
\item
{\tt int type} : type of entries.
\begin{itemize}
\item {\tt SPOOLES\_REAL} : double precision real entries.
\item {\tt SPOOLES\_COMPLEX} : double precision complex entries.
\end{itemize}
\item
{\tt int mode} : storage mode.
\begin{itemize}
\item {\tt SUBMTX\_DENSE\_ROWS} : dense, storage by rows.
\item {\tt SUBMTX\_DENSE\_COLUMNS} : dense, storage by columns.
\item {\tt SUBMTX\_SPARSE\_ROWS} : sparse, storage by rows.
\item {\tt SUBMTX\_SPARSE\_COLUMNS} : sparse, storage by columns.
\item {\tt SUBMTX\_SPARSE\_TRIPLES} : sparse, storage by 
      $(i,j,a_{i,j})$ triples.
\item {\tt SUBMTX\_DENSE\_SUBROWS} : sparse, storage by dense subrows.
\item {\tt SUBMTX\_DENSE\_SUBCOLUMNS} : 
      sparse, storage by dense subcolumns.
\item {\tt SUBMTX\_DIAGONAL} : a diagonal matrix.
\item {\tt SUBMTX\_BLOCK\_DIAGONAL\_SYM} : a symmetric block
      diagonal matrix with $1 \times 1$ and $2 \times 2$ blocks.
\item {\tt SUBMTX\_BLOCK\_DIAGONAL\_HERM} : a hermitian block
      diagonal matrix with $1 \times 1$ and $2 \times 2$ blocks.
\end{itemize}
\item
{\tt int rowid} : object's row id, default value is {\tt -1}.
\item
{\tt int colid} : object's column id, default value is {\tt -1}.
\item
{\tt int nrow} : number of rows 
\item
{\tt int ncol} : number of columns 
\item
{\tt int nent} : number of stored matrix entries.
\item
{\tt DV wrkDV} : 
object that manages the owned working storage.
\item
{\tt SubMtx *next} : 
link to a next object in a singly linked list.
\end{itemize}
\par
One can query the type of the object using these simple macros.
\begin{itemize}
\item
{\tt SUBMTX\_IS\_REAL(mtx)} is {\tt 1} if {\tt mtx} 
has real entries and {\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_COMPLEX(mtx)} is {\tt 1} if {\tt mtx} 
has complex entries and {\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_DENSE\_ROWS(mtx)} is {\tt 1} if {\tt mtx} 
has dense rows as its storage format, 
and {\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_DENSE\_COLUMNS(mtx)} is {\tt 1} if {\tt mtx} 
has dense columns as its storage format, 
and {\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_SPARSE\_ROWS(mtx)} is {\tt 1} if {\tt mtx} 
has sparse rows as its storage format, 
and {\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_SPARSE\_COLUMNS(mtx)} is {\tt 1} if {\tt mtx} 
has sparse columns as its storage format, 
and {\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_SPARSE\_TRIPLES(mtx)} is {\tt 1} if {\tt mtx} 
has sparse triples as its storage format, 
{\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_DENSE\_SUBROWS(mtx)} is {\tt 1} if {\tt mtx} 
has dense subrows as its storage format, 
{\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_DENSE\_SUBCOLUMNS(mtx)} is {\tt 1} if {\tt mtx} 
has dense subcolumns as its storage format, 
{\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_DIAGONAL(mtx)} is {\tt 1} if {\tt mtx} is diagonal, 
{\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_BLOCK\_DIAGONAL\_SYM(mtx)} is {\tt 1} if {\tt mtx} 
is block diagonal and symmetric, 
{\tt 0} otherwise.
\item
{\tt SUBMTX\_IS\_BLOCK\_DIAGONAL\_HERM(mtx)} is {\tt 1} if {\tt mtx} 
is block diagonal and hermitian, 
{\tt 0} otherwise.
\end{itemize}