File: nsparseMatrix.R

package info (click to toggle)
rmatrix 0.9975-6-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,136 kB
  • ctags: 2,162
  • sloc: ansic: 35,914; makefile: 225; fortran: 151; sh: 67
file content (38 lines) | stat: -rw-r--r-- 1,539 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#### Superclass Methods for all sparse nonzero-pattern matrices

setAs("CsparseMatrix", "nsparseMatrix",
      function(from) .Call(Csparse_to_nz_pattern, from,
			   is(from, "triangularMatrix")))


###------- Work via  as(*, lgC) : ------------

## For multiplication operations, sparseMatrix overrides other method
## selections.  Coerce a ddensematrix argument to a lsparseMatrix.

setMethod("%*%", signature(x = "nsparseMatrix", y = "ndenseMatrix"),
          function(x, y) callGeneric(x, as(y, "nsparseMatrix")))

setMethod("%*%", signature(x = "ndenseMatrix", y = "nsparseMatrix"),
          function(x, y) callGeneric(as(x, "nsparseMatrix"), y))

setMethod("crossprod", signature(x = "nsparseMatrix", y = "ndenseMatrix"),
          function(x, y = NULL) callGeneric(x, as(y, "nsparseMatrix")))

setMethod("crossprod", signature(x = "ndenseMatrix", y = "nsparseMatrix"),
          function(x, y = NULL) callGeneric(as(x, "nsparseMatrix"), y))

## and coerce lsparse* to lgC*
setMethod("%*%", signature(x = "nsparseMatrix", y = "nsparseMatrix"),
          function(x, y) callGeneric(as(x, "ngCMatrix"), as(y, "ngCMatrix")))

setMethod("crossprod", signature(x = "nsparseMatrix", y = "nsparseMatrix"),
          function(x, y = NULL)
          callGeneric(as(x, "ngCMatrix"), as(y, "ngCMatrix")))

setMethod("!", "nsparseMatrix",
          ## turns FALSE to TRUE --> dense matrix
          function(e1) !as(e1, "ngeMatrix"))

setMethod("diag", signature(x = "nsparseMatrix"),
	  function(x, nrow, ncol = n) diag(as(x, "ngCMatrix")))