[R] Communative Matrix Multiplcation

Berend Hasselman bhh at xs4all.nl
Tue Aug 14 19:48:30 CEST 2012


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