\HeaderA{TsparseMatrix-class}{Class "TsparseMatrix" of Sparse Matrices in Triplet Form}{TsparseMatrix.Rdash.class}
\aliasA{coerce,Matrix,TsparseMatrix-method}{TsparseMatrix-class}{coerce,Matrix,TsparseMatrix.Rdash.method}
\aliasA{coerce,matrix,TsparseMatrix-method}{TsparseMatrix-class}{coerce,matrix,TsparseMatrix.Rdash.method}
\aliasA{coerce,numeric,TsparseMatrix-method}{TsparseMatrix-class}{coerce,numeric,TsparseMatrix.Rdash.method}
\aliasA{coerce,TsparseMatrix,CsparseMatrix-method}{TsparseMatrix-class}{coerce,TsparseMatrix,CsparseMatrix.Rdash.method}
\aliasA{coerce,TsparseMatrix,lMatrix-method}{TsparseMatrix-class}{coerce,TsparseMatrix,lMatrix.Rdash.method}
\aliasA{coerce,TsparseMatrix,lsparseMatrix-method}{TsparseMatrix-class}{coerce,TsparseMatrix,lsparseMatrix.Rdash.method}
\aliasA{coerce,TsparseMatrix,matrix-method}{TsparseMatrix-class}{coerce,TsparseMatrix,matrix.Rdash.method}
\aliasA{coerce,TsparseMatrix,nMatrix-method}{TsparseMatrix-class}{coerce,TsparseMatrix,nMatrix.Rdash.method}
\aliasA{coerce,TsparseMatrix,nsparseMatrix-method}{TsparseMatrix-class}{coerce,TsparseMatrix,nsparseMatrix.Rdash.method}
\aliasA{crossprod,ANY,TsparseMatrix-method}{TsparseMatrix-class}{crossprod,ANY,TsparseMatrix.Rdash.method}
\aliasA{crossprod,Matrix,TsparseMatrix-method}{TsparseMatrix-class}{crossprod,Matrix,TsparseMatrix.Rdash.method}
\aliasA{crossprod,TsparseMatrix,ANY-method}{TsparseMatrix-class}{crossprod,TsparseMatrix,ANY.Rdash.method}
\aliasA{crossprod,TsparseMatrix,Matrix-method}{TsparseMatrix-class}{crossprod,TsparseMatrix,Matrix.Rdash.method}
\aliasA{crossprod,TsparseMatrix,missing-method}{TsparseMatrix-class}{crossprod,TsparseMatrix,missing.Rdash.method}
\aliasA{solve,TsparseMatrix,ANY-method}{TsparseMatrix-class}{solve,TsparseMatrix,ANY.Rdash.method}
\aliasA{solve,TsparseMatrix,missing-method}{TsparseMatrix-class}{solve,TsparseMatrix,missing.Rdash.method}
\aliasA{t,TsparseMatrix-method}{TsparseMatrix-class}{t,TsparseMatrix.Rdash.method}
\aliasA{tcrossprod,ANY,TsparseMatrix-method}{TsparseMatrix-class}{tcrossprod,ANY,TsparseMatrix.Rdash.method}
\aliasA{tcrossprod,Matrix,TsparseMatrix-method}{TsparseMatrix-class}{tcrossprod,Matrix,TsparseMatrix.Rdash.method}
\aliasA{tcrossprod,TsparseMatrix,ANY-method}{TsparseMatrix-class}{tcrossprod,TsparseMatrix,ANY.Rdash.method}
\aliasA{tcrossprod,TsparseMatrix,Matrix-method}{TsparseMatrix-class}{tcrossprod,TsparseMatrix,Matrix.Rdash.method}
\aliasA{tcrossprod,TsparseMatrix,missing-method}{TsparseMatrix-class}{tcrossprod,TsparseMatrix,missing.Rdash.method}
\aliasA{\%*\%,ANY,TsparseMatrix-method}{TsparseMatrix-class}{.Rpcent.*.Rpcent.,ANY,TsparseMatrix.Rdash.method}
\aliasA{\%*\%,Matrix,TsparseMatrix-method}{TsparseMatrix-class}{.Rpcent.*.Rpcent.,Matrix,TsparseMatrix.Rdash.method}
\aliasA{\%*\%,TsparseMatrix,ANY-method}{TsparseMatrix-class}{.Rpcent.*.Rpcent.,TsparseMatrix,ANY.Rdash.method}
\aliasA{\%*\%,TsparseMatrix,Matrix-method}{TsparseMatrix-class}{.Rpcent.*.Rpcent.,TsparseMatrix,Matrix.Rdash.method}
\keyword{classes}{TsparseMatrix-class}
\begin{Description}\relax
The \code{"TsparseMatrix"} class is the virtual class of
all sparse matrices coded in triplet form.  Since it is a virtual class,
no objects may be created from it.  See
\code{showClass("TsparseMatrix")} for its subclasses.
\end{Description}
\begin{Section}{Slots}
\describe{
\item[\code{Dim}, \code{Dimnames}:] from the \code{"\LinkA{Matrix}{Matrix.Rdash.class}"} class,
\item[\code{i}:] Object of class \code{"integer"} - the row indices
of non-zero entries \emph{in 0-base}, i.e., must be in
\code{0:(nrow(.)-1)}.
\item[\code{j}:] Object of class \code{"integer"} - the column
indices of non-zero entries.  Must be the same length as slot
\code{i} and \emph{0-based} as well, i.e., in
\code{0:(ncol(.)-1)}.   For numeric Tsparse matrices, \code{(i,j)}
pairs can occur more than once, see \code{\LinkA{dgTMatrix}{dgTMatrix.Rdash.class}}.

}
\end{Section}
\begin{Section}{Extends}
Class \code{"sparseMatrix"}, directly.
Class \code{"Matrix"}, by class \code{"sparseMatrix"}.
\end{Section}
\begin{Section}{Methods}
Extraction (\code{"["}) methods, see
\code{\LinkA{[-methods}{[.Rdash.methods}}.
\end{Section}
\begin{Note}\relax
Most operations with sparse matrices are performed using the
compressed, column-oriented or \code{\LinkA{CsparseMatrix}{CsparseMatrix.Rdash.class}}
representation.  The triplet representation is convenient for
creating a sparse matrix or for reading and writing such
matrices.  Once it is created, however, the matrix is generally
coerced to a \code{\LinkA{CsparseMatrix}{CsparseMatrix.Rdash.class}} for further
operations.

For convenience, methods for some operations such as \code{\%*\%}
and \code{crossprod} are defined for
\code{\LinkA{TsparseMatrix}{TsparseMatrix.Rdash.class}} objects.  These methods simply
coerce the \code{\LinkA{TsparseMatrix}{TsparseMatrix.Rdash.class}} object to a
\code{\LinkA{CsparseMatrix}{CsparseMatrix.Rdash.class}} object then perform the
operation.
\end{Note}
\begin{SeeAlso}\relax
its superclass, \code{\LinkA{sparseMatrix}{sparseMatrix.Rdash.class}}, and the
\code{\LinkA{dgTMatrix}{dgTMatrix.Rdash.class}} class, for the links to other classes.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
showClass("TsparseMatrix")
## or just the subclasses' names
names(getClass("TsparseMatrix")@subclasses)
\end{ExampleCode}
\end{Examples}

