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
|
\par
\section{Data Structure}
\label{section:DenseMtx:dataStructure}
\par
\par
The {\tt DenseMtx} structure has the following fields.
\begin{itemize}
\item
{\tt int type} : type of entries, {\tt SPOOLES\_REAL}
or {\tt SPOOLES\_COMPLEX}.
\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 inc1} : row increment,
difference in addresses between entries in the same column
\item
{\tt int inc2} : column increment,
difference in addresses between entries in the same row
\item
{\tt int *rowind} :
pointer to the base address of the {\tt int} vector
that contains row indices.
\item
{\tt int *colind} :
pointer to the base address of the {\tt int} vector
that contains column indices.
\item
{\tt double *entries} :
pointer to the base address of the {\tt double} vector that
contains the entries.
\item
{\tt DV wrkDV} :
object that manages the owned working storage.
\item
{\tt DenseMtx *next} :
link to a next object in a singly linked list.
\end{itemize}
\par
One can query the type of entries via two macros.
\begin{itemize}
\item
{\tt DENSEMTX\_IS\_REAL(mtx)} returns {\tt 1} if the matrix has
real entries, and {\tt 0} otherwise.
\item
{\tt DENSEMTX\_IS\_COMPLEX(mtx)} returns {\tt 1} if the matrix has
complex entries, and {\tt 0} otherwise.
\end{itemize}
|