[R] Communative Matrix Multiplcation

Doran, Harold HDoran at air.org
Tue Aug 14 19:55:00 CEST 2012


Thanks, Berend. I updated my R and got same result. I reposted the old sessionInfo(), which was an older version. But, same code, same matrices, different result

> -----Original Message-----
> From: Berend Hasselman [mailto:bhh at xs4all.nl]
> Sent: Tuesday, August 14, 2012 1:49 PM
> To: Doran, Harold
> Cc: 'r-help at r-project.org'
> Subject: Re: [R] Communative Matrix Multiplcation
> 
> 
> On 14-08-2012, at 19:26, Doran, Harold wrote:
> 
> >
> > I'm not seeing why the following occurs:
> >
> >> T1 <- (A1 - A2) %*% D
> >> T2 <- (A1 %*% D) - (A2 %*% D)
> >> identical(T1, T2)
> > [1] FALSE
> > .......
> 
> I ran this in a clean environment
> 
> <code>
> library(Matrix)
> 
> 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()
> )
> 
> 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()
> )
> 
> D <- new("ddiMatrix"
>    , diag = "N"
>    , Dim = c(6L, 6L)
>    , Dimnames = list(NULL, NULL)
>    , x = c(5, 5, 5, 5, 10, 10)
> )
> 
> A1
> A2
> D
> 
> T1 <- (A1 - A2) %*% D
> T2 <- (A1 %*% D) - (A2 %*% D)
> identical(T1, T2)
> </code>
> 
> and qot this result
> 
> [1] TRUE
> 
> 
> so it's now up to you to find out what you did exactly.
> 
> Berend



More information about the R-help mailing list