SCM

SCM Repository

[matrix] Diff of /pkg/Matrix/R/ddenseMatrix.R
ViewVC logotype

Diff of /pkg/Matrix/R/ddenseMatrix.R

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

revision 2811, Mon Jul 16 15:50:31 2012 UTC revision 2814, Tue Jul 24 14:02:28 2012 UTC
# Line 153  Line 153 
153  setMethod("skewpart", signature(x = "ddenseMatrix"),  setMethod("skewpart", signature(x = "ddenseMatrix"),
154            function(x) .Call(ddense_skewpart, x))            function(x) .Call(ddense_skewpart, x))
155    
156    
157    setMethod("is.finite", signature(x = "dgeMatrix"),
158              function(x) {
159                  if(all(ifin <- is.finite(x@x)))
160                      allTrueMat(x)
161                  else if(any(ifin)) {
162                      r <- as(x, "lMatrix") #-> logical x-slot
163                      r@x <- ifin
164                      as(r, "nMatrix")
165                  }
166                  else is.na_nsp(x)
167              })
168    
169    ## TODO? -- rather methods for specific subclasses of ddenseMatrix
170    setMethod("is.finite", signature(x = "ddenseMatrix"),
171              function(x) {
172                  if(all(ifin <- is.finite(x@x))) return(allTrueMat(x))
173                  ## *NOT* dge, i.e., either triangular or symmetric
174                  ## (possibly packed): has finite 0-triangle
175                  cdx <- getClassDef(class(x))
176    
177                  r <- new(if(extends(cdx,"symmetricMatrix"))"nsyMatrix" else "ngeMatrix")
178                  r@Dim <- (d <- x@Dim)
179                  r@Dimnames <- x@Dimnames
180                  isPacked <- (le <- prod(d)) > length(ifin)
181                  r@x <- rep.int(TRUE, le)
182                  iTr <- indTri(d[1], upper= x@uplo == "U", diag= TRUE)
183                  if(isPacked) { ## x@x is "usable"
184                      r@x[iTr] <- ifin
185                  } else {
186                      r@x[iTr] <- ifin[iTr]
187                  }
188                  r
189              })
190    
191    setMethod("is.infinite", signature(x = "ddenseMatrix"),
192              function(x) {
193                  if(any((isInf <- is.infinite(x@x)))) {
194                      r <- as(x, "lMatrix")#-> logical x-slot; 0 |--> FALSE
195                      r@x <- isInf
196                      as(r, "nMatrix")# often sparse .. better way?
197                  }
198                  else is.na_nsp(x)
199              })

Legend:
Removed from v.2811  
changed lines
  Added in v.2814

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