dtpMatrix-class function

Packed Triangular Dense Matrices - "dtpMatrix"

Packed Triangular Dense Matrices - "dtpMatrix"

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

class is the same except in nonpacked storage.

class

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 ddd * d, length(x) is of length d(d+1)/2d(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").
  • 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 <- pack(T2)) str(p1) (pp <- pack(T)) 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)))
  • Maintainer: Martin Maechler
  • License: GPL (>= 2) | file LICENCE
  • Last published: 2025-03-11