\HeaderA{ntrMatrix-class}{Triangular Dense Logical Matrices}{ntrMatrix.Rdash.class}
\aliasA{"!,ntpMatrix-method}{ntrMatrix-class}{"!,ntpMatrix.Rdash.method}
\aliasA{"!,ntrMatrix-method}{ntrMatrix-class}{"!,ntrMatrix.Rdash.method}
\aliasA{coerce,matrix,ntpMatrix-method}{ntrMatrix-class}{coerce,matrix,ntpMatrix.Rdash.method}
\aliasA{coerce,matrix,ntrMatrix-method}{ntrMatrix-class}{coerce,matrix,ntrMatrix.Rdash.method}
\aliasA{coerce,ntpMatrix,dtpMatrix-method}{ntrMatrix-class}{coerce,ntpMatrix,dtpMatrix.Rdash.method}
\aliasA{coerce,ntpMatrix,ngeMatrix-method}{ntrMatrix-class}{coerce,ntpMatrix,ngeMatrix.Rdash.method}
\aliasA{coerce,ntpMatrix,ntrMatrix-method}{ntrMatrix-class}{coerce,ntpMatrix,ntrMatrix.Rdash.method}
\aliasA{coerce,ntrMatrix,dtrMatrix-method}{ntrMatrix-class}{coerce,ntrMatrix,dtrMatrix.Rdash.method}
\aliasA{coerce,ntrMatrix,ngeMatrix-method}{ntrMatrix-class}{coerce,ntrMatrix,ngeMatrix.Rdash.method}
\aliasA{coerce,ntrMatrix,ntpMatrix-method}{ntrMatrix-class}{coerce,ntrMatrix,ntpMatrix.Rdash.method}
\aliasA{ntpMatrix-class}{ntrMatrix-class}{ntpMatrix.Rdash.class}
\aliasA{t,ntpMatrix-method}{ntrMatrix-class}{t,ntpMatrix.Rdash.method}
\aliasA{t,ntrMatrix-method}{ntrMatrix-class}{t,ntrMatrix.Rdash.method}
\keyword{classes}{ntrMatrix-class}
\begin{Description}\relax
The \code{"ntrMatrix"} class is the class of triangular, dense,
logical matrices in nonpacked storage.  The \code{"ntpMatrix"} class
is the same except in packed storage.
\end{Description}
\begin{Section}{Slots}
\describe{
\item[\code{x}:] Object of class \code{"logical"}. The logical
values that constitute the matrix, stored in column-major order.
\item[\code{uplo}:] Object of class \code{"character"}. Must be
either "U", for upper triangular, and "L", for lower triangular.
\item[\code{diag}:] Object of class \code{"character"}. Must be
either \code{"U"}, for unit triangular (diagonal is all ones), or
\code{"N"}; see \code{\LinkA{triangularMatrix}{triangularMatrix.Rdash.class}}.
\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}} 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{"ntrMatrix"} extends class \code{"ngeMatrix"}, directly, whereas\\
\code{"ntpMatrix"} extends class \code{"ndenseMatrix"}, directly.

Both extend Class \code{"triangularMatrix"}, directly,
and class \code{"denseMatrix"}, \code{"lMatrix"} and others,
\emph{in}directly, use \code{\LinkA{showClass}{showClass}("nsyMatrix")}, e.g., for
details.
\end{Section}
\begin{Section}{Methods}
Currently, mainly \code{\LinkA{t}{t}()} and coercion methods (for
\code{\LinkA{as}{as}(.)}; use, e.g.,
\code{\LinkA{showMethods}{showMethods}(class="nsyMatrix")} for details.
\end{Section}
\begin{SeeAlso}\relax
Classes \code{\LinkA{ngeMatrix}{ngeMatrix.Rdash.class}}, \code{\LinkA{Matrix}{Matrix.Rdash.class}};
function \code{\LinkA{t}{t}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
showClass("ntrMatrix")

str(new("ntpMatrix"))
(nutr <- as(upper.tri(matrix(,4,4)), "ntrMatrix"))
str(nutp <- as(nutr, "ntpMatrix"))# packed matrix: only 10 = (4+1)*4/2 entries
!nutp ## the logical negation (is *not* logical triangular !)
## but this one is:
stopifnot(all.equal(nutp, as(!!nutp, "ntpMatrix")))
\end{ExampleCode}
\end{Examples}

