SCM

SCM Repository

[matrix] Diff of /pkg/R/pMatrix.R
ViewVC logotype

Diff of /pkg/R/pMatrix.R

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1305, Sat Jul 1 16:18:39 2006 UTC revision 1654, Fri Oct 27 16:58:15 2006 UTC
# Line 1  Line 1 
1  #### Permutation Matrices -- Coercion and Methods  #### Permutation Matrices -- Coercion and Methods
2    
3    ## The typical   'constructor' : coerce from  'index'
4  setAs("integer", "pMatrix",  setAs("integer", "pMatrix",
5        function(from) {        function(from) {
6            n <- length(from)            n <- length(from)
# Line 8  Line 9 
9                perm = from)                perm = from)
10        })        })
11    
12    setAs("numeric", "pMatrix",
13          function(from)
14              if(all(from == (i <- as.integer(from)))) as(i, "pMatrix")
15              else stop("coercion to 'pMatrix' only works from integer numeric"))
16    
17  setAs("pMatrix", "matrix",  setAs("pMatrix", "matrix",
18        function(from) {        function(from) {
19            fp <- from@perm            fp <- from@perm
# Line 16  Line 22 
22            r            r
23        })        })
24    
25  ## coerce to 0/1 sparse matrix, i.e. sparse logical :  ## coerce to 0/1 sparse matrix, i.e. sparse pattern
26  setAs("pMatrix", "lgTMatrix",  setAs("pMatrix", "ngTMatrix",
27        function(from) {        function(from) {
28            d <- from@Dim            d <- from@Dim
29            new("lgTMatrix", i = seq(length = d[1]) - 1:1, j = from@perm - 1:1,            new("ngTMatrix", i = seq_len(d[1]) - 1:1, j = from@perm - 1:1,
30                Dim = d, Dimnames = from@Dimnames)                Dim = d, Dimnames = from@Dimnames)
31        })        })
32    
33  setAs("pMatrix", "TsparseMatrix",  setAs("pMatrix", "TsparseMatrix",
34        function(from) as(from, "lgTMatrix"))        function(from) as(from, "ngTMatrix"))
35    
36  setMethod("solve", signature(a = "pMatrix", b = "missing"),  setMethod("solve", signature(a = "pMatrix", b = "missing"),
37            function(a, b) {            function(a, b) {
38                bp <- ap <- a@perm                bp <- ap <- a@perm
39                bp[ap] <- seq(along = ap)                bp[ap] <- seq_along(ap)
40                new("pMatrix", perm = bp, Dim = a@Dim,                new("pMatrix", perm = bp, Dim = a@Dim,
41                    Dimnames = rev(a@Dimnames))                    Dimnames = rev(a@Dimnames))
42            }, valueClass = "pMatrix")            }, valueClass = "pMatrix")

Legend:
Removed from v.1305  
changed lines
  Added in v.1654

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge