dtrMatrix-class {Matrix} | R Documentation |
Triangular, dense, numeric matrices
Description
The "dtrMatrix"
class is the class of triangular, dense,
numeric matrices in nonpacked storage. The "dtpMatrix"
class
is the same except in packed storage, see pack()
.
Objects from the Class
Objects can be created by calls of the form new("dtrMatrix", ...)
.
Slots
uplo
:Object of class
"character"
. Must be either "U", for upper triangular, and "L", for lower triangular.diag
:Object of class
"character"
. Must be either"U"
, for unit triangular (diagonal is all ones), or"N"
; seetriangularMatrix
.x
:Object of class
"numeric"
. The numeric values that constitute the matrix, stored in column-major order.Dim
:Object of class
"integer"
. The dimensions of the matrix which must be a two-element vector of non-negative integers.
Extends
Class "ddenseMatrix"
, directly.
Class "triangularMatrix"
, directly.
Class "Matrix"
and others, by class "ddenseMatrix"
.
Methods
Among others (such as matrix products, e.g. ?crossprod-methods
),
- norm
signature(x = "dtrMatrix", type = "character")
: ..- rcond
signature(x = "dtrMatrix", norm = "character")
: ..- solve
signature(a = "dtrMatrix", b = "....")
: efficiently use a “forwardsolve” orbacksolve
for a lower or upper triangular matrix, respectively, see alsosolve-methods
.- +, -, *, ..., ==, >=, ...
all the
Ops
group methods are available. When applied to two triangular matrices, these return a triangular matrix when easily possible.
See Also
Classes ddenseMatrix
, dtpMatrix
,
triangularMatrix
Examples
(m <- rbind(2:3, 0:-1))
(M <- as(m, "generalMatrix"))
(T <- as(M, "triangularMatrix")) # formally upper triangular
(T2 <- as(t(M), "triangularMatrix"))
stopifnot(T@uplo == "U", T2@uplo == "L", identical(T2, t(T)))
m <- matrix(0,4,4); m[upper.tri(m)] <- 1:6
(t1 <- Matrix(m+diag(,4)))
str(t1p <- pack(t1))
(t1pu <- diagN2U(t1p))
stopifnot(exprs = {
inherits(t1 , "dtrMatrix"); validObject(t1)
inherits(t1p, "dtpMatrix"); validObject(t1p)
inherits(t1pu,"dtCMatrix"); validObject(t1pu)
t1pu@x == 1:6
all(t1pu == t1p)
identical((t1pu - t1)@x, numeric())# sparse all-0
})