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 2192, Thu May 1 08:21:47 2008 UTC revision 2197, Mon Jun 2 14:34:42 2008 UTC
# Line 629  Line 629 
629                        if(L1) r <- rep.int(r, n)                        if(L1) r <- rep.int(r, n)
630                    } else                    } else
631                        r <- callGeneric(e1@x, e2)                        r <- callGeneric(e1@x, e2)
632                    e1@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e1@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
633                    return(e1)                    return(e1)
634                }                }
635                callGeneric(diag2tT.u(e1,e2, "d"), e2)                callGeneric(diag2tT.u(e1,e2, "d"), e2)
# Line 647  Line 647 
647                        if(L1) r <- rep.int(r, n)                        if(L1) r <- rep.int(r, n)
648                    } else                    } else
649                        r <- callGeneric(e1, e2@x)                        r <- callGeneric(e1, e2@x)
650                    e2@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e2@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
651                    return(e2)                    return(e2)
652                }                }
653                callGeneric(e1, diag2tT.u(e2,e1, "d"))                callGeneric(e1, diag2tT.u(e2,e1, "d"))
# Line 667  Line 667 
667                    } else                    } else
668                        r <- callGeneric(e1@x, e2)                        r <- callGeneric(e1@x, e2)
669                    e1 <- copyClass(e1, "ddiMatrix", c("diag", "Dim", "Dimnames"))                    e1 <- copyClass(e1, "ddiMatrix", c("diag", "Dim", "Dimnames"))
670                    e1@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e1@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
671                    return(e1)                    return(e1)
672                }                }
673                callGeneric(diag2tT.u(e1,e2, "d"), e2)                callGeneric(diag2tT.u(e1,e2, "d"), e2)
# Line 686  Line 686 
686                    } else                    } else
687                        r <- callGeneric(e1, e2@x)                        r <- callGeneric(e1, e2@x)
688                    e2 <- copyClass(e2, "ddiMatrix", c("diag", "Dim", "Dimnames"))                    e2 <- copyClass(e2, "ddiMatrix", c("diag", "Dim", "Dimnames"))
689                    e2@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e2@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
690                    return(e2)                    return(e2)
691                }                }
692                callGeneric(e1, diag2tT.u(e2,e1, "d"))                callGeneric(e1, diag2tT.u(e2,e1, "d"))
# Line 706  Line 706 
706                    } else                    } else
707                        r <- callGeneric(e1@x, e2)                        r <- callGeneric(e1@x, e2)
708                    e1 <- copyClass(e1, "ldiMatrix", c("diag", "Dim", "Dimnames"))                    e1 <- copyClass(e1, "ldiMatrix", c("diag", "Dim", "Dimnames"))
709                    e1@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e1@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
710                    return(e1)                    return(e1)
711                }                }
712                callGeneric(diag2tT.u(e1,e2, "l"), e2)                callGeneric(diag2tT.u(e1,e2, "l"), e2)
# Line 725  Line 725 
725                    } else                    } else
726                        r <- callGeneric(e1, e2@x)                        r <- callGeneric(e1, e2@x)
727                    e2 <- copyClass(e2, "ldiMatrix", c("diag", "Dim", "Dimnames"))                    e2 <- copyClass(e2, "ldiMatrix", c("diag", "Dim", "Dimnames"))
728                    e2@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e2@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
729                    return(e2)                    return(e2)
730                }                }
731                callGeneric(e1, diag2tT.u(e2,e1, "l"))                callGeneric(e1, diag2tT.u(e2,e1, "l"))
# Line 744  Line 744 
744                        if(L1) r <- rep.int(r, n)                        if(L1) r <- rep.int(r, n)
745                    } else                    } else
746                        r <- callGeneric(e1@x, e2)                        r <- callGeneric(e1@x, e2)
747                    e1@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e1@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
748                    return(e1)                    return(e1)
749                }                }
750                callGeneric(diag2tT.u(e1,e2, "l"), e2)                callGeneric(diag2tT.u(e1,e2, "l"), e2)
# Line 762  Line 762 
762                        if(L1) r <- rep.int(r, n)                        if(L1) r <- rep.int(r, n)
763                    } else                    } else
764                        r <- callGeneric(e1, e2@x)                        r <- callGeneric(e1, e2@x)
765                    e2@x <- if(L1) r else r[1L + n*(0:(n-1L))]                    e2@x <- if(L1) r else r[1L + (n+1L)*(0:(n-1L))]
766                    return(e2)                    return(e2)
767                }                }
768                callGeneric(e1, diag2tT.u(e2,e1, "l"))                callGeneric(e1, diag2tT.u(e2,e1, "l"))
# Line 771  Line 771 
771    
772    
773  ## Not {"sparseMatrix", "numeric} :  {"denseMatrix", "matrix", ... }  ## Not {"sparseMatrix", "numeric} :  {"denseMatrix", "matrix", ... }
774    for(other in c("ANY", "Matrix", "dMatrix")) {
775  ## ddi*:  ## ddi*:
776  setMethod("Ops", signature(e1 = "ddiMatrix", e2 = "ANY"),      setMethod("Ops", signature(e1 = "ddiMatrix", e2 = other),
777            function(e1,e2) callGeneric(diag2tT.u(e1,e2, "d"), e2))            function(e1,e2) callGeneric(diag2tT.u(e1,e2, "d"), e2))
778  setMethod("Ops", signature(e1 = "ANY", e2 = "ddiMatrix"),      setMethod("Ops", signature(e1 = other, e2 = "ddiMatrix"),
779            function(e1,e2) callGeneric(e1, diag2tT.u(e2,e1, "d")))            function(e1,e2) callGeneric(e1, diag2tT.u(e2,e1, "d")))
780  ## ldi*:  ## ldi*:
781  setMethod("Ops", signature(e1 = "ldiMatrix", e2 = "ANY"),      setMethod("Ops", signature(e1 = "ldiMatrix", e2 = other),
782            function(e1,e2) callGeneric(diag2tT.u(e1,e2, "l"), e2))            function(e1,e2) callGeneric(diag2tT.u(e1,e2, "l"), e2))
783  setMethod("Ops", signature(e1 = "ANY", e2 = "ldiMatrix"),      setMethod("Ops", signature(e1 = other, e2 = "ldiMatrix"),
784            function(e1,e2) callGeneric(e1, diag2tT.u(e2,e1, "l")))            function(e1,e2) callGeneric(e1, diag2tT.u(e2,e1, "l")))
785    }
786  ## This should *not* dispatch to <dense> methods (in ./Ops.R ), as  ## This should *not* dispatch to <dense> methods (in ./Ops.R ), as
787  ##  FALSE & <anything> |-> FALSE : hence result should be diagonal:  ##  FALSE & <anything> |-> FALSE : hence result should be diagonal:
788  for(cl in diCls) {  for(cl in diCls) {

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

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