CsparseMatrix-class {Matrix} | R Documentation |

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.

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

Class `"sparseMatrix"`

, directly.
Class `"Matrix"`

, by class `"sparseMatrix"`

.

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

: ...

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.

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

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

[Package *Matrix* version 1.5-1 Index]