The "ltrMatrix" class is the class of triangular, dense, logical matrices in nonpacked storage. The "ltpMatrix" class is the same except in packed storage.

Slots

x:

Object of class "logical". The logical values that constitute the matrix, stored in column-major order.

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.

Dim,Dimnames:

The dimension (a length-2 "integer") and corresponding names (or NULL), see the Matrix class.

factors:

Object of class "list". A named list of factorizations that have been computed for the matrix.

Extends

Both extend classes "ldenseMatrix" and "triangularMatrix", directly; further, class "Matrix", "lMatrix" and others, indirectly. Use showClass("ltrMatrix"), e.g., for details.

Methods

Currently, mainly t() and coercion methods (for as(.); use, e.g., showMethods(class="ltrMatrix") for details.

See also

Classes lgeMatrix, Matrix; function t

Examples

showClass("ltrMatrix")
#> Class "ltrMatrix" [package "Matrix"]
#> 
#> Slots:
#>                                                         
#> Name:        Dim  Dimnames         x      uplo      diag
#> Class:   integer      list   logical character character
#> 
#> Extends: 
#> Class "unpackedMatrix", directly
#> Class "ldenseMatrix", directly
#> Class "triangularMatrix", directly
#> Class "lMatrix", by class "ldenseMatrix", distance 2
#> Class "denseMatrix", by class "ldenseMatrix", distance 2
#> Class "Matrix", by class "triangularMatrix", distance 2
#> Class "replValueSp", by class "Matrix", distance 4

str(new("ltpMatrix"))
#> Formal class 'ltpMatrix' [package "Matrix"] with 5 slots
#>   ..@ uplo    : chr "U"
#>   ..@ Dim     : int [1:2] 0 0
#>   ..@ Dimnames:List of 2
#>   .. ..$ : NULL
#>   .. ..$ : NULL
#>   ..@ x       : logi(0) 
#>   ..@ diag    : chr "N"
(lutr <- as(upper.tri(matrix(, 4, 4)), "ldenseMatrix"))
#> 4 x 4 Matrix of class "ltrMatrix"
#>      [,1]  [,2]  [,3]  [,4] 
#> [1,] FALSE  TRUE  TRUE  TRUE
#> [2,]     . FALSE  TRUE  TRUE
#> [3,]     .     . FALSE  TRUE
#> [4,]     .     .     . FALSE
str(lutp <- pack(lutr)) # packed matrix: only 10 = 4*(4+1)/2 entries
#> Formal class 'ltpMatrix' [package "Matrix"] with 5 slots
#>   ..@ uplo    : chr "U"
#>   ..@ Dim     : int [1:2] 4 4
#>   ..@ Dimnames:List of 2
#>   .. ..$ : NULL
#>   .. ..$ : NULL
#>   ..@ x       : logi [1:10] FALSE TRUE FALSE TRUE TRUE FALSE ...
#>   ..@ diag    : chr "N"
!lutp # the logical negation (is *not* logical triangular !)
#> 4 x 4 Matrix of class "lgeMatrix"
#>      [,1]  [,2]  [,3]  [,4]
#> [1,] TRUE FALSE FALSE FALSE
#> [2,] TRUE  TRUE FALSE FALSE
#> [3,] TRUE  TRUE  TRUE FALSE
#> [4,] TRUE  TRUE  TRUE  TRUE
## but this one is:
stopifnot(all.equal(lutp, pack(!!lutp)))