SCM

SCM Repository

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

Diff of /pkg/Matrix/R/diagMatrix.R

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

revision 2191, Wed Apr 30 06:32:09 2008 UTC revision 2192, Thu May 1 08:21:47 2008 UTC
# Line 293  Line 293 
293                           replDiag(x, i=i, , value=value)                           replDiag(x, i=i, , value=value)
294                   })                   })
295    
296  setReplaceMethod("[", signature(x = "diagonalMatrix", i = "matrix", # 2-col.matrix  setReplaceMethod("[", signature(x = "diagonalMatrix",
297                                    i = "matrix", # 2-col.matrix
298                                  j = "missing", value = "replValue"),                                  j = "missing", value = "replValue"),
299                   function(x,i,j, ..., value) {                   function(x,i,j, ..., value) {
300                       if(ncol(i) == 2) {                       if(ncol(i) == 2) {
301                           if(all((ii <- i[,1]) == i[,2])) { # replace in diagonal only                           if(all((ii <- i[,1]) == i[,2])) { # replace in diagonal only
302                                 if(x@diag == "U") {
303                                     one <- as1(x@x)
304                                     if(any(value != one | is.na(value))) {
305                                         x@diag <- "N"
306                                         x@x <- rep.int(one, x@Dim[1])
307                                     }
308                                 }
309                               x@x[ii] <- value                               x@x[ii] <- value
310                               x                               x
311                           } else { ## no longer diagonal, but remain sparse:                           } else { ## no longer diagonal, but remain sparse:

Legend:
Removed from v.2191  
changed lines
  Added in v.2192

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