dtCMatrix-class {Matrix} | R Documentation

## Triangular, (compressed) sparse column matrices

### Description

The `"dtCMatrix"` class is a class of triangular, sparse matrices in the compressed, column-oriented format. In this implementation the non-zero elements in the columns are sorted into increasing row order. The `"dtTMatrix"` class is a class of triangular, sparse matrices in triplet format.

### Objects from the Class

Objects can be created by calls of the form `new("dtCMatrix", ...)` or calls of the form `new("dtTMatrix", ...)`, but more typically automatically via `Matrix()` or coercion such as `as(x, "dtCMatrix")`.

### 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`.
`p`:
  Object of class `"integer"` of pointers, one for each column, to the initial (zero-based) index of elements in the column. (Only present in the `dtCMatrix` class.)
`i`:
  Object of class `"integer"` of length nnzero (number of non-zero elements). These are the row numbers for each non-zero element in the matrix.
`j`:
  Object of class `"integer"` of length nnzero (number of non-zero elements). These are the column numbers for each non-zero element in the matrix. (Only present in the `dtTMatrix` class.)
`x`:
  Object of class `"numeric"` - the non-zero elements of the matrix.
`Dim`,`Dimnames`:
  The dimension (a length-2 `"integer"`) and corresponding names (or `NULL`), inherited from the `Matrix`, see there.

### Extends

Class `"dgCMatrix"`, directly. Class `"triangularMatrix"`, directly. Class `"dMatrix"`, `"sparseMatrix"`, and more by class `"dgCMatrix"` etc, see the examples.

### Methods

coerce
  `signature(from = "dtCMatrix", to = "dgTMatrix")`
coerce
  `signature(from = "dtCMatrix", to = "dgeMatrix")`
coerce
  `signature(from = "dtTMatrix", to = "dgeMatrix")`
coerce
  `signature(from = "dtTMatrix", to = "dtrMatrix")`
coerce
  `signature(from = "dtTMatrix", to = "matrix")`
solve
  `signature(a = "dtCMatrix", b = "matrix")`
solve
  `signature(a = "dtCMatrix", b = "dgeMatrix")`
solve
  `signature(a = "dtCMatrix", b = "missing")`
solve
  `signature(a = "dtCMatrix", b = "numeric")`
solve
  `signature(a = "dtCMatrix", b = "CsparseMatrix")`: fully sparse triangular solve, in traditional S/R aka `backsolve`.
t
  `signature(x = "dtCMatrix")`: returns the transpose of `x`
t
  `signature(x = "dtTMatrix")`: returns the transpose of `x`

### See Also

Classes `dgCMatrix`, `dgTMatrix`, `dgeMatrix`, and `dtrMatrix`.

### Examples

    showClass("dtCMatrix")

    showClass("dtTMatrix")
    t1 <- new("dtTMatrix", x= c(3,7), i= 0:1, j=3:2, Dim= as.integer(c(4,4)))
    t1
    ## from  0-diagonal to unit-diagonal {low-level step}:
    tu <- t1 ; tu@diag <- "U"
    tu
    (cu <- as(tu, "dtCMatrix"))
    str(cu)# only two entries in @i and @x
    stopifnot(cu@i == 1:0,
              all(2 * symmpart(cu) == Diagonal(4) + forceSymmetric(cu)))

    t1[1,2:3] <- -1:-2
    diag(t1) <- 10*c(1:2,3:2)
    t1 # still triangular
    (it1 <- solve(t1))
    t1. <- solve(it1)
    all(abs(t1 - t1.) < 10 * .Machine$double.eps)

[Package Matrix version 0.999375-33 Index]