Virtual Class of Triangular Matrices in Package Matrix
Virtual Class of Triangular Matrices in Package Matrix
The virtual class of triangular matrices,"triangularMatrix", the package Matrix contains square (nrow == ncol) numeric and logical, dense and sparse matrices, e.g., see the examples. A main use of the virtual class is in methods (and C functions) that can deal with all triangular matrices.
class
Slots
uplo:: String (of class "character"). Must be either "U", for upper triangular, and "L", for lower triangular.
diag:: String (of class "character"). Must be either "U", for unit triangular (diagonal is all ones), or "N" for non-unit. The diagonal elements are not accessed internally when diag is "U". For denseMatrix classes, they need to be allocated though, such that the length of the x slot does not depend on diag.
Dim, Dimnames:: The dimension (a length-2 "integer") and corresponding names (or NULL), inherited from the Matrix, see there.
Extends
Class "Matrix", directly.
Methods
There's a C function triangularMatrix_validity()
called by the internal validity checking functions.
Currently, Schur, isSymmetric and as() (i.e. coerce) have methods with triangularMatrix in their signature.
See Also
isTriangular() for testing any matrix for triangularity; classes symmetricMatrix, and, e.g., dtrMatrix for numeric dense matrices, or ltCMatrix for a logical sparse matrix subclass of "triangularMatrix".
Examples
showClass("triangularMatrix")## The names of direct subclasses:scl <- getClass("triangularMatrix")@subclasses
directly <- sapply(lapply(scl, slot,"by"), length)==0names(scl)[directly](m <- matrix(c(5,1,0,3),2))as(m,"triangularMatrix")