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`:

  `integer` vector 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.

  In other words, `m@p[1:ncol(m)]` contains the indices of those elements in `m@x` that are the first elements in the respective column of `m`.

`Dim`, `Dimnames`:

  inherited from the superclass, see the `sparseMatrix` class.

### Extends

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

### Methods

matrix products `%*%`, `crossprod()` and `tcrossprod()`, several `solve` methods, and other matrix methods available:

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(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")`: ...

diag

  `signature(x = "CsparseMatrix")`: ...

gamma

  `signature(x = "CsparseMatrix")`: ...

lgamma

  `signature(x = "CsparseMatrix")`: ...

log

  `signature(x = "CsparseMatrix")`: ...

t

  `signature(x = "CsparseMatrix")`: ...

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"))

[Package Matrix version 1.2-6 Index]