CsparseMatrix-class {Matrix} | R Documentation

## Class "CsparseMatrix" of Sparse Matrices in Column-compressed Form

### Description

The `"CsparseMatrix"` class is the virtual class of all sparse matrices coded in sorted compressed column-oriented form. Since it is a virtual class, no objects may be created from it. See `showClass("CsparseMatrix")` for its subclasses.

### Slots

`i`:
  Object of class `"integer"` of length nnzero (number of non-zero elements). These are the 0-based row numbers for each non-zero element in the matrix, i.e., `i` must be in `0:(nrow(.)-1)`
.
`p`:
  Object of class `"integer"` for providing pointers, one for each column, to the initial (zero-based) index of elements in the column. `.@p` is of length `ncol(.) + 1`, with `p[1] == 0` and `p[length(p)] == nnzero`, such that in fact, `diff(.@p)` are the number of non-zero elements for each column.
`Dim`, `Dimnames`:
  inherited from the superclass, see the `sparseMatrix` class.

### Extends

Class `"sparseMatrix"`, directly. Class `"Matrix"`, by class `"sparseMatrix"`.

### Methods

Arith
  `signature(e1 = "CsparseMatrix", e2 = "numeric")`: ...
Arith
  `signature(e1 = "numeric", e2 = "CsparseMatrix")`: ...
Math
  `signature(x = "CsparseMatrix")`: ...
band
  `signature(x = "CsparseMatrix")`: ...
-
  `signature(e1 = "CsparseMatrix", e2 = "numeric")`: ...
-
  `signature(e1 = "numeric", e2 = "CsparseMatrix")`: ...
[<-
  `signature(x = "CsparseMatrix", i = "index", j = "missing", value = "replValue")`: ...
[<-
  `signature(x = "CsparseMatrix", i = "index", j = "index", value = "replValue")`: ...
[<-
  `signature(x = "CsparseMatrix", i = "missing", j = "index", value = "replValue")`: ...
%*%
  `signature(x = "CsparseMatrix", y = "CsparseMatrix")`: ...
%*%
  `signature(x = "CsparseMatrix", y = "denseMatrix")`: ...
%*%
  `signature(x = "CsparseMatrix", y = "matrix")`: ...
+
  `signature(e1 = "CsparseMatrix", e2 = "numeric")`: ...
+
  `signature(e1 = "numeric", e2 = "CsparseMatrix")`: ...
coerce
  `signature(from = "CsparseMatrix", to = "TsparseMatrix")`: ...
coerce
  `signature(from = "CsparseMatrix", to = "denseMatrix")`: ...
coerce
  `signature(from = "CsparseMatrix", to = "matrix")`: ...
coerce
  `signature(from = "CsparseMatrix", to = "lsparseMatrix")`: ...
coerce
  `signature(from = "CsparseMatrix", to = "nsparseMatrix")`: ...
coerce
  `signature(from = "TsparseMatrix", to = "CsparseMatrix")`: ...
coerce
  `signature(from = "denseMatrix", to = "CsparseMatrix")`: ...
crossprod
  `signature(x = "CsparseMatrix", y = "CsparseMatrix")`: ...
crossprod
  `signature(x = "CsparseMatrix", y = "missing")`: ...
crossprod
  `signature(x = "CsparseMatrix", y = "dgeMatrix")`: ...
crossprod
  `signature(x = "CsparseMatrix", y = "matrix")`: ...
diag
  `signature(x = "CsparseMatrix")`: ...
gamma
  `signature(x = "CsparseMatrix")`: ...
lgamma
  `signature(x = "CsparseMatrix")`: ...
log
  `signature(x = "CsparseMatrix")`: ...
t
  `signature(x = "CsparseMatrix")`: ...
tcrossprod
  `signature(x = "CsparseMatrix", y = "CsparseMatrix")`: ...
tcrossprod
  `signature(x = "CsparseMatrix", y = "missing")`: ...
tril
  `signature(x = "CsparseMatrix")`: ...
triu
  `signature(x = "CsparseMatrix")`: ...

### Note

All classes extending `CsparseMatrix` have a common validity (see `validObject`) check function. That function additionally checks the `i` slot for each column to contain increasing row numbers.
In earlier versions of Matrix (`<= 0.999375-16`), `validObject` automatically re-sorted the entries when necessary, and hence `new()` calls with somewhat permuted `i` and `x` slots worked, as `new(...)` (with slot arguments) automatically checks the validity.

Now, you have to use `sparseMatrix` to achieve the same functionality or know how to use `.validateCsparse()` to do so.

### See Also

`colSums`, `kronecker`, and other such methods with own help pages.

Further, the super class of `CsparseMatrix`, `sparseMatrix`, and, e.g., class `dgCMatrix` for the links to other classes.

### Examples

    getClass("CsparseMatrix")

    ## The common validity check function (based on C code):
    getValidity(getClass("CsparseMatrix"))

    ## This behavior has been changed
    # un-sorted i-slot on input is automatically "sorted" :
    #M <- new("dgCMatrix", Dim = 2:3, p = as.integer(c(0,1,1,3)),
    #         i = c(1L, 1:0), x= c(2,2,1))
    #stopifnot(M@i == c(1L, 0:1), M@x == c(2,1,2))

[Package Matrix version 0.999375-33 Index]