\HeaderA{symmetricMatrix-class}{Virtual Class of Symmetric Matrices in package:Matrix}{symmetricMatrix.Rdash.class}
\aliasA{coerce,CsparseMatrix,symmetricMatrix-method}{symmetricMatrix-class}{coerce,CsparseMatrix,symmetricMatrix.Rdash.method}
\aliasA{coerce,denseMatrix,symmetricMatrix-method}{symmetricMatrix-class}{coerce,denseMatrix,symmetricMatrix.Rdash.method}
\aliasA{coerce,matrix,symmetricMatrix-method}{symmetricMatrix-class}{coerce,matrix,symmetricMatrix.Rdash.method}
\keyword{classes}{symmetricMatrix-class}
\begin{Description}\relax
The virtual class of symmetric matrices, \code{"symmetricMatrix"},
from the package \pkg{Matrix} contains numeric and logical, dense and
sparse matrices, e.g., see the examples.

The main use is in methods (and C functions) that can deal with
all symmetric matrices.
\end{Description}
\begin{Section}{Slots}
\describe{
\item[\code{uplo}:] Object of class \code{"character"}.  Must be
either "U", for upper triangular, and "L", for lower triangular.
\item[\code{Dim, Dimnames}:] The dimension (a length-2
\code{"integer"}) and corresponding names (or \code{NULL}),
inherited from the \code{\LinkA{Matrix}{Matrix.Rdash.class}}, see there.
\item[\code{factors}:] a list of matrix factorizations, also from the
\code{Matrix} class.
}
\end{Section}
\begin{Section}{Extends}
Class \code{"Matrix"}, directly.
\end{Section}
\begin{Section}{Methods}
There's a C function \code{symmetricMatrix\_validity()}
called by the internal validity checking functions.
\end{Section}
\begin{SeeAlso}\relax
Classes \code{\LinkA{triangularMatrix}{triangularMatrix.Rdash.class}}, and, e.g.,
\code{\LinkA{dsyMatrix}{dsyMatrix.Rdash.class}} for numeric \emph{dense} matrices, or
\code{\LinkA{lsCMatrix}{lsCMatrix.Rdash.class}} for a logical \emph{sparse} matrix class.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
showClass("symmetricMatrix")

## The names of direct subclasses:
scl <- getClass("symmetricMatrix")@subclasses
directly <- sapply(lapply(scl, slot, "by"), length) == 0
names(scl)[directly]
\end{ExampleCode}
\end{Examples}

