Message-ID: <F7E6D18CC2877149AB5296CE54EA27660253A095@WAXMXOLYMB002.WAX.wa.lcl>
Date: 2012-08-14T17:57:28Z
From: Nordlund, Dan (DSHS/RDA)
Subject: Communative Matrix Multiplcation
In-Reply-To: <686DF18D10EF1C428C2760321FB5B69E066990CCFD@DC1VEX07MB001.air.org>
> -----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