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"`

; see `triangularMatrix`

.

`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`

),

- coerce
`signature(from = "dgeMatrix", to = "dtrMatrix")`

- coerce
`signature(from = "dtrMatrix", to = "matrix")`

- coerce
`signature(from = "dtrMatrix", to = "ltrMatrix")`

- coerce
`signature(from = "dtrMatrix", to = "matrix")`

- coerce
`signature(from = "matrix", to = "dtrMatrix")`

- norm
`signature(x = "dtrMatrix", type = "character")`

- rcond
`signature(x = "dtrMatrix", norm = "character")`

- solve
`signature(a = "dtrMatrix", b = "....")`

efficientely
use a “forwardsolve” or `backsolve`

for a lower or
upper triangular matrix, respectively, see also
`solve-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
})
```

[Package

*Matrix* version 1.5-1

Index]