\HeaderA{dsyMatrix-class}{Symmetric Dense Numeric Matrices}{dsyMatrix.Rdash.class}
\aliasA{coerce,dgeMatrix,dspMatrix-method}{dsyMatrix-class}{coerce,dgeMatrix,dspMatrix.Rdash.method}
\aliasA{coerce,dgeMatrix,dsyMatrix-method}{dsyMatrix-class}{coerce,dgeMatrix,dsyMatrix.Rdash.method}
\aliasA{coerce,dspMatrix,dsyMatrix-method}{dsyMatrix-class}{coerce,dspMatrix,dsyMatrix.Rdash.method}
\aliasA{coerce,dspMatrix,lspMatrix-method}{dsyMatrix-class}{coerce,dspMatrix,lspMatrix.Rdash.method}
\aliasA{coerce,dspMatrix,matrix-method}{dsyMatrix-class}{coerce,dspMatrix,matrix.Rdash.method}
\aliasA{coerce,dsyMatrix,corMatrix-method}{dsyMatrix-class}{coerce,dsyMatrix,corMatrix.Rdash.method}
\aliasA{coerce,dsyMatrix,dpoMatrix-method}{dsyMatrix-class}{coerce,dsyMatrix,dpoMatrix.Rdash.method}
\aliasA{coerce,dsyMatrix,dspMatrix-method}{dsyMatrix-class}{coerce,dsyMatrix,dspMatrix.Rdash.method}
\aliasA{coerce,dsyMatrix,lsyMatrix-method}{dsyMatrix-class}{coerce,dsyMatrix,lsyMatrix.Rdash.method}
\aliasA{coerce,dsyMatrix,matrix-method}{dsyMatrix-class}{coerce,dsyMatrix,matrix.Rdash.method}
\aliasA{coerce,matrix,dspMatrix-method}{dsyMatrix-class}{coerce,matrix,dspMatrix.Rdash.method}
\aliasA{coerce,matrix,dsyMatrix-method}{dsyMatrix-class}{coerce,matrix,dsyMatrix.Rdash.method}
\aliasA{dspMatrix-class}{dsyMatrix-class}{dspMatrix.Rdash.class}
\aliasA{norm,dspMatrix,character-method}{dsyMatrix-class}{norm,dspMatrix,character.Rdash.method}
\aliasA{norm,dspMatrix,missing-method}{dsyMatrix-class}{norm,dspMatrix,missing.Rdash.method}
\aliasA{norm,dsyMatrix,character-method}{dsyMatrix-class}{norm,dsyMatrix,character.Rdash.method}
\aliasA{norm,dsyMatrix,missing-method}{dsyMatrix-class}{norm,dsyMatrix,missing.Rdash.method}
\aliasA{rcond,dspMatrix,character-method}{dsyMatrix-class}{rcond,dspMatrix,character.Rdash.method}
\aliasA{rcond,dspMatrix,missing-method}{dsyMatrix-class}{rcond,dspMatrix,missing.Rdash.method}
\aliasA{rcond,dsyMatrix,character-method}{dsyMatrix-class}{rcond,dsyMatrix,character.Rdash.method}
\aliasA{rcond,dsyMatrix,missing-method}{dsyMatrix-class}{rcond,dsyMatrix,missing.Rdash.method}
\aliasA{show,dsyMatrix-method}{dsyMatrix-class}{show,dsyMatrix.Rdash.method}
\aliasA{solve,dspMatrix,ddenseMatrix-method}{dsyMatrix-class}{solve,dspMatrix,ddenseMatrix.Rdash.method}
\aliasA{solve,dspMatrix,matrix-method}{dsyMatrix-class}{solve,dspMatrix,matrix.Rdash.method}
\aliasA{solve,dspMatrix,missing-method}{dsyMatrix-class}{solve,dspMatrix,missing.Rdash.method}
\aliasA{solve,dsyMatrix,ddenseMatrix-method}{dsyMatrix-class}{solve,dsyMatrix,ddenseMatrix.Rdash.method}
\aliasA{solve,dsyMatrix,denseMatrix-method}{dsyMatrix-class}{solve,dsyMatrix,denseMatrix.Rdash.method}
\aliasA{solve,dsyMatrix,matrix-method}{dsyMatrix-class}{solve,dsyMatrix,matrix.Rdash.method}
\aliasA{solve,dsyMatrix,missing-method}{dsyMatrix-class}{solve,dsyMatrix,missing.Rdash.method}
\aliasA{t,dspMatrix-method}{dsyMatrix-class}{t,dspMatrix.Rdash.method}
\aliasA{t,dsyMatrix-method}{dsyMatrix-class}{t,dsyMatrix.Rdash.method}
\aliasA{unpack,dspMatrix-method}{dsyMatrix-class}{unpack,dspMatrix.Rdash.method}
\aliasA{\%*\%,ddenseMatrix,dsyMatrix-method}{dsyMatrix-class}{.Rpcent.*.Rpcent.,ddenseMatrix,dsyMatrix.Rdash.method}
\aliasA{\%*\%,dspMatrix,ddenseMatrix-method}{dsyMatrix-class}{.Rpcent.*.Rpcent.,dspMatrix,ddenseMatrix.Rdash.method}
\aliasA{\%*\%,dspMatrix,matrix-method}{dsyMatrix-class}{.Rpcent.*.Rpcent.,dspMatrix,matrix.Rdash.method}
\aliasA{\%*\%,dsyMatrix,ddenseMatrix-method}{dsyMatrix-class}{.Rpcent.*.Rpcent.,dsyMatrix,ddenseMatrix.Rdash.method}
\aliasA{\%*\%,dsyMatrix,matrix-method}{dsyMatrix-class}{.Rpcent.*.Rpcent.,dsyMatrix,matrix.Rdash.method}
\aliasA{\%*\%,matrix,dsyMatrix-method}{dsyMatrix-class}{.Rpcent.*.Rpcent.,matrix,dsyMatrix.Rdash.method}
\keyword{classes}{dsyMatrix-class}
\begin{Description}\relax
The \code{"dsyMatrix"} class is the class of symmetric, dense matrices
in non-packed storage and \code{"dspMatrix"} is the class of symmetric
dense matrices in packed storage.  Only the upper triangle or the
lower triangle is stored.
\end{Description}
\begin{Section}{Objects from the Class}
Objects can be created by calls of the form \code{new("dsyMatrix", ...)}.
\end{Section}
\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{x}:] Object of class \code{"numeric"}. The numeric
values that constitute the matrix, stored in column-major order.
\item[\code{Dim},\code{Dimnames}:] The dimension (a length-2
\code{"integer"}) and corresponding names (or \code{NULL}), see the
\code{\LinkA{Matrix}{Matrix.Rdash.class}}.
\item[\code{factors}:] Object of class \code{"list"}.  A named
list of factorizations that have been computed for the matrix.
}
\end{Section}
\begin{Section}{Extends}
\code{"dsyMatrix"} extends class \code{"dgeMatrix"}, directly, whereas\\
\code{"dspMatrix"} extends class \code{"ddenseMatrix"}, directly.

Both extend class \code{"symmetricMatrix"}, directly,
and class \code{"Matrix"} and others, \emph{in}directly, use
\code{\LinkA{showClass}{showClass}("dsyMatrix")}, e.g., for details.
\end{Section}
\begin{Section}{Methods}
\describe{
\item[coerce] \code{signature(from = "ddenseMatrix", to = "dgeMatrix")}
\item[coerce] \code{signature(from = "dspMatrix", to = "matrix")}
\item[coerce] \code{signature(from = "dsyMatrix", to = "matrix")}
\item[coerce] \code{signature(from = "dsyMatrix", to = "dspMatrix")}
\item[coerce] \code{signature(from = "dspMatrix", to = "dsyMatrix")}
\item[norm] \code{signature(x = "dspMatrix", type = "character")}
\item[norm] \code{signature(x = "dsyMatrix", type = "character")}
\item[norm] \code{signature(x = "dspMatrix", type = "missing")}
\item[norm] \code{signature(x = "dsyMatrix", type = "missing")}
\item[solve] \code{signature(a = "dspMatrix", b = "missing")}
\item[solve] \code{signature(a = "dsyMatrix", b = "missing")}
\item[solve] \code{signature(a = "dspMatrix", b = "matrix")}
\item[solve] \code{signature(a = "dsyMatrix", b = "matrix")}
\item[t] \code{signature(x = "dsyMatrix")}: Transpose; swaps from
upper triangular to lower triangular storage, i.e., the uplo slot
from \code{"U"} to \code{"L"} or vice versa, the same as for all
symmetric matrices.
}
\end{Section}
\begin{SeeAlso}\relax
Classes \code{\LinkA{dgeMatrix}{dgeMatrix.Rdash.class}} and \code{\LinkA{Matrix}{Matrix.Rdash.class}};
\code{\LinkA{solve}{solve}}, \code{\LinkA{norm}{norm}}, \code{\LinkA{rcond}{rcond}},
\code{\LinkA{t}{t}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
## Only upper triangular part matters (when uplo == "U" as per default)
(sy2 <- new("dsyMatrix", Dim = as.integer(c(2,2)), x = c(14, NA,32,77)))
str(t(sy2)) # uplo = "L", and the lower tri. (i.e. NA is replaced).

chol(sy2) #-> "Cholesky" matrix

## Coercing to dpoMatrix gives invalid object:
sy3 <- new("dsyMatrix", Dim = as.integer(c(2,2)), x = c(14, -1, 2, -7))
try(as(sy3, "dpoMatrix")) # -> error: not positive definite

\end{ExampleCode}
\end{Examples}

