dtpMatrix-class {Matrix} | R Documentation |

## Packed Triangular Dense Matrices - "dtpMatrix"

### Description

The `"dtpMatrix"`

class is the class of triangular,
dense, numeric matrices in packed storage. The `"dtrMatrix"`

class is the same except in nonpacked storage.

### Objects from the Class

Objects can be created by calls of the form ```
new("dtpMatrix",
...)
```

or by coercion from other classes of matrices.

### 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.
For a packed square matrix of dimension *d * d*,
`length(x)`

is of length *d(d+1)/2* (also when
`diag == "U"`

!).

`Dim`

,`Dimnames`

:The dimension (a length-2
`"integer"`

) and corresponding names (or `NULL`

),
inherited from the `Matrix`

, see there.

### Extends

Class `"ddenseMatrix"`

, directly.
Class `"triangularMatrix"`

, directly.
Class `"dMatrix"`

and more by class `"ddenseMatrix"`

etc, see
the examples.

### Methods

- %*%
`signature(x = "dtpMatrix", y = "dgeMatrix")`

:
Matrix multiplication; ditto for several other signature
combinations, see `showMethods("%*%", class = "dtpMatrix")`

.

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

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

- determinant
`signature(x = "dtpMatrix", logarithm = "logical")`

:
the `determinant(x)`

trivially is
`prod(diag(x))`

, but computed on log scale to prevent over-
and underflow.

- diag
`signature(x = "dtpMatrix")`

: ...

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

: ...

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

: ...

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

:
efficiently using internal backsolve or forwardsolve, see
`solve-methods`

.

- t
`signature(x = "dtpMatrix")`

: `t(x)`

remains
a `"dtpMatrix"`

, lower triangular if `x`

is upper
triangular, and vice versa.

### See Also

Class `dtrMatrix`

### Examples

showClass("dtrMatrix")
example("dtrMatrix-class", echo=FALSE)
(p1 <- as(T2, "dtpMatrix"))
str(p1)
(pp <- as(T, "dtpMatrix"))
ip1 <- solve(p1)
stopifnot(length(p1@x) == 3, length(pp@x) == 3,
p1 @ uplo == T2 @ uplo, pp @ uplo == T @ uplo,
identical(t(pp), p1), identical(t(p1), pp),
all((l.d <- p1 - T2) == 0), is(l.d, "dtpMatrix"),
all((u.d <- pp - T ) == 0), is(u.d, "dtpMatrix"),
l.d@uplo == T2@uplo, u.d@uplo == T@uplo,
identical(t(ip1), solve(pp)), is(ip1, "dtpMatrix"),
all.equal(as(solve(p1,p1), "diagonalMatrix"), Diagonal(2)))

[Package

*Matrix* version 1.2-17

Index]