[R] Communative Matrix Multiplcation

Nordlund, Dan (DSHS/RDA) NordlDJ at dshs.wa.gov
Tue Aug 14 19:57:28 CEST 2012


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Doran, Harold
> Sent: Tuesday, August 14, 2012 10:27 AM
> To: Doran, Harold; 'r-help at r-project.org'
> Subject: Re: [R] Communative Matrix Multiplcation
> 
> Meant to also add
> 
> library(Matrix)
> 
> for reproducing
> 
> From: Doran, Harold
> Sent: Tuesday, August 14, 2012 1:26 PM
> To: r-help at r-project.org
> Subject: Communative Matrix Multiplcation
> 
> Friends
> 
> I'm not seeing why the following occurs:
> 
> > T1 <- (A1 - A2) %*% D
> > T2 <- (A1 %*% D) - (A2 %*% D)
> > identical(T1, T2)
> [1] FALSE
> 
> Harold
> 
> > dput(A1)
> new("dsCMatrix"
>     , i = c(0L, 1L, 2L, 3L, 0L, 1L, 4L, 2L, 3L, 5L)
>     , p = c(0L, 1L, 2L, 3L, 4L, 7L, 10L)
>     , Dim = c(6L, 6L)
>     , Dimnames = list(NULL, NULL)
>     , x = c(5, 5, 5, 5, 5, 5, 10, 5, 5, 10)
>     , uplo = "U"
>     , factors = list()
> )
> > dput(A2)
> new("dgeMatrix"
>     , x = c(1.41313955042629, 1.23647532592053, 1.36413787785255,
> 0.986247245800629,
> 2.64961487634682, 2.35038512365318, 1.23647532592053, 1.55872699943971,
> 0.579347997632991, 1.62544967700677, 2.79520232536024,
> 2.20479767463976,
> 1.36413787785255, 0.579347997632991, 2.75106274522123,
> 0.305451379293231,
> 1.94348587548554, 3.05651412451446, 0.986247245800629,
> 1.62544967700677,
> 0.305451379293232, 2.08285169789937, 2.6116969228074, 2.3883030771926,
> 2.64961487634682, 2.79520232536024, 1.94348587548554, 2.6116969228074,
> 5.44481720170706, 4.55518279829294, 2.35038512365318, 2.20479767463976,
> 3.05651412451446, 2.3883030771926, 4.55518279829294, 5.44481720170706
> )
>     , Dim = c(6L, 6L)
>     , Dimnames = list(NULL, NULL)
>     , factors = list()
> )
> > dput(D)
> new("ddiMatrix"
>     , diag = "N"
>     , Dim = c(6L, 6L)
>     , Dimnames = list(NULL, NULL)
>     , x = c(5, 5, 5, 5, 10, 10)
> )
> 

Probably FAQ 7.31.  Try 

all.equal(T1,T2)


Hope this is helpful,

Dan

Daniel J. Nordlund
Washington State Department of Social and Health Services
Planning, Performance, and Accountability
Research and Data Analysis Division
Olympia, WA 98504-5204




More information about the R-help mailing list