triangularMatrix-class.RdThe 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.
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.
Class "Matrix", directly.
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.
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".
showClass("triangularMatrix")
#> Virtual Class "triangularMatrix" [package "Matrix"]
#>
#> Slots:
#>
#> Name: uplo diag Dim Dimnames
#> Class: character character integer list
#>
#> Extends: "Matrix"
#>
#> Known Subclasses: "ntrMatrix", "ntpMatrix", "ltrMatrix", "ltpMatrix", "dtrMatrix", "dtpMatrix",
#> "ntCMatrix", "ntRMatrix", "ntTMatrix", "ltCMatrix", "ltRMatrix", "ltTMatrix",
#> "dtCMatrix", "dtRMatrix", "dtTMatrix"
## The names of direct subclasses:
scl <- getClass("triangularMatrix")@subclasses
directly <- sapply(lapply(scl, slot, "by"), length) == 0
names(scl)[directly]
#> [1] "ntrMatrix" "ntpMatrix" "ltrMatrix" "ltpMatrix" "dtrMatrix" "dtpMatrix"
#> [7] "ntCMatrix" "ntRMatrix" "ntTMatrix" "ltCMatrix" "ltRMatrix" "ltTMatrix"
#> [13] "dtCMatrix" "dtRMatrix" "dtTMatrix"
(m <- matrix(c(5,1,0,3), 2))
#> [,1] [,2]
#> [1,] 5 0
#> [2,] 1 3
as(m, "triangularMatrix")
#> 2 x 2 Matrix of class "dtrMatrix"
#> [,1] [,2]
#> [1,] 5 .
#> [2,] 1 3