Artifact 9453c81a7ee204a5ae870726a5eae0d2ffbf2b4ede123664caeb900ab32e82be:
- Executable file
r37/doc/manual2/sparse.tex
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 4571) [annotate] [blame] [check-ins using] [more...]
- Executable file
r38/doc/manual2/sparse.tex
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 4571) [annotate] [blame] [check-ins using]
\chapter{SPARSE: Sparse Matrices} \label{SPARSE MATRICES} \typeout{{SPARSE: Sparse Matrices}} {\footnotesize \begin{center} Stephen Scowcroft \\ Konrad-Zuse-Zentrum f\"ur Informationstechnik Berlin \\ Takustra\"se 7 \\ D-14195 Berlin-Dahlem, Germany \\ \end{center} } \ttindex{SPARSE, Sparse matrices} \ttindex{MATRIX, see also SPARSE} \section{Introduction} This package extends the available matrix feature to enable calculations with sparse matrices. It also provides a selection of functions that are useful in the world of linear algebra with respect to sparse matrices. \\ The package is loaded by: {\tt load\_package sparse;} \section{Sparse Matrix Calculations} To extend the syntax of this class of calculations an expression type {\tt sparse \ttindex{SPARSE}} is added. An identifier may be declared a sparse variable by the declaration {\tt sparse}. The size of the sparse matrix must be declared explicitly in the matrix declaration. This declaration \f{SPARSE} is similar to the declaration \f{MATRIX}. Once a matrix has been declared a sparse matrix all elements of the matrix are treated as if they were initialized to 0. When printing out a sparse matrix only the non-zero elements are printed due to the fact that only the non-zero elements of the matrix are stored. To assign values to the elements of the declared sparse matrix we use the same syntax as for matrices. \begin{verbatim} sparse aa(10,1),bb(200,200); aa(1,1):=10; bb(100,150):=a; \end{verbatim} \section{Linear Algebra Package for Sparse Matrices} Most of the functions of this package are related to the functions of the linear algebra package \f{LINALG}. For further explanation and examples of the various functions please refer to the \f{LINALG} package. \subsection{Basic matrix handling} {\small\begin{tabular}{l l l l} spadd\_columns \ttindex{SPADD\_COLUMNS} & spadd\_rows \ttindex{SPADD\_ROWS} & spadd\_to\_columns \ttindex{SPADD\_TO\_COLUMNS} & spadd\_to\_rows \ttindex{SPADD\_TO\_ROWS} \\ spaugment\_columns \ttindex{SPAUGMENT\_COLUMNS} & spchar\_poly \ttindex{SPCHAR\_POLY} & spcol\_dim \ttindex{SPCOL\_DIM} & spcopy\_into \ttindex{SPCOPY\_INTO} \\ spdiagonal \ttindex{SPDIAGONAL} & spextend \ttindex{SPEXTEND} & spfind\_companion \ttindex{SPFIND\_COMPANION} & spget\_columns \ttindex{SPGET\_COLUMNS} \\ spget\_rows \ttindex{SPGET\_ROWS} & sphermitian\_tp \ttindex{SPHERMITIAN\_TP} & spmatrix\_augment \ttindex{SPMATRIX\_AUGMENT} & spmatrix\_stack \ttindex{SPMATRIX\_STACK} \\ spminor \ttindex{SPMINOR} & spmult\_columns \ttindex{SPMULT\_COLUMNS} & spmult\_rows \ttindex{SPMULT\_ROWS} & sppivot \ttindex{SPPIVOT} \\ spremove\_columns \ttindex{SPREMOVE\_COLUMNS} & spremove\_rows \ttindex{SPREMOVE\_ROWS} & sprow\_dim \ttindex{SPROW\_DIM} & sprows\_pivot \ttindex{SPROWS\_PIVOT} \\ spstack\_rows \ttindex{SPSTACK\_ROWS} & spsub\_matrix \ttindex{SPSUB\_MATRIX} & spswap\_columns \ttindex{SPSWAP\_COLUMNS} & spswap\_entries \ttindex{SPSWAP\_ENTRIES} \\ spswap\_rows \ttindex{SPSWAP\_ROWS} \end{tabular}} \subsection{Constructors} Functions that create sparse matrices. \begin{tabular}{l l l l} spband\_matrix \ttindex{SPBAND\_MATRIX} & spblock\_matrix \ttindex{SPBLOCK\_MATRIX} & spchar\_matrix \ttindex{SPCHAR\_MATRIX} & spcoeff\_matrix \ttindex{SPCOEFF\_MATRIX} \\ spcompanion \ttindex{SPCOMPANION} & sphessian \ttindex{SPHESSIAN} & spjacobian \ttindex{SPJACOBIAN} & spjordan\_block \ttindex{SPJORDAN\_BLOCK} \\ spmake\_identity \ttindex{SPMAKE\_IDENTITY} \end{tabular} \subsection{High level algorithms} \begin{tabular}{l l l l} spchar\_poly \ttindex{SPCHAR\_POLY} & spcholesky \ttindex{SPCHOLESKY} & spgram\_schmidt \ttindex{SPGRAM\_SCHMIDT} & splu\_decom \ttindex{SPLU\_DECOM} \\ sppseudo\_inverse \ttindex{SPPSEUDO\_INVERSE} & svd \ttindex{SVD} \end{tabular} \subsection{Predicates} \begin{tabular}{l l l l} matrixp \ttindex{MATRIXP} & sparsematp \ttindex{SPARSEMATP} & squarep \ttindex{SQUAREP} & symmetricp \ttindex{SYMMETRICP} \end{tabular}