\HeaderA{ldiMatrix-class}{Class "ldiMatrix" of Diagonal Logical Matrices}{ldiMatrix.Rdash.class}
\aliasA{"!,ldiMatrix-method}{ldiMatrix-class}{"!,ldiMatrix.Rdash.method}
\aliasA{coerce,ldiMatrix,lgCMatrix-method}{ldiMatrix-class}{coerce,ldiMatrix,lgCMatrix.Rdash.method}
\aliasA{coerce,ldiMatrix,lgTMatrix-method}{ldiMatrix-class}{coerce,ldiMatrix,lgTMatrix.Rdash.method}
\keyword{classes}{ldiMatrix-class}
\begin{Description}\relax
The class \code{"ldiMatrix"} of logical diagonal matrices.
\end{Description}
\begin{Section}{Objects from the Class}
Objects can be created by calls of the form \code{new("ldiMatrix", ...)}
but typically rather via \code{\LinkA{Diagonal}{Diagonal}}.
\end{Section}
\begin{Section}{Slots}
\describe{
\item[\code{x}:] \code{"logical"} vector.
\item[\code{diag}:] \code{"character"} string, either "U" or "N",
see \code{\LinkA{ddiMatrix}{ddiMatrix.Rdash.class}}.
\item[\code{Dim},\code{Dimnames}:] matrix dimension and
\code{\LinkA{dimnames}{dimnames}}, see the \code{\LinkA{Matrix}{Matrix.Rdash.class}} class
description.
}
\end{Section}
\begin{Section}{Extends}
Class \code{"\LinkA{diagonalMatrix}{diagonalMatrix.Rdash.class}"} and
class \code{"\LinkA{lMatrix}{lMatrix.Rdash.class}"}, directly.

Class \code{"\LinkA{sparseMatrix}{sparseMatrix.Rdash.class}"}, by class \code{"diagonalMatrix"}.
\end{Section}
\begin{SeeAlso}\relax
Classes \code{\LinkA{ddiMatrix}{ddiMatrix.Rdash.class}} and
\code{\LinkA{diagonalMatrix}{diagonalMatrix.Rdash.class}}; function \code{\LinkA{Diagonal}{Diagonal}}.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
(lM <- Diagonal(x = c(TRUE,FALSE,FALSE)))
str(lM)#> gory details (slots)

crossprod(lM) # numeric
(nM <- as(lM, "nMatrix"))# -> sparse (not formally ``diagonal'')
crossprod(nM) # logical sparse
\end{ExampleCode}
\end{Examples}

