Skip to content
Back to formatted view

Raw Message

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