[R] multiplying a matrix by a vector
Jeff Newmiller
jdnewmil at dcn.davis.ca.us
Fri Nov 4 20:23:47 CET 2016
If you want to get a comparable result, then run the same code. You may not want a comparable result though... your version straightens out the issue Peter was puzzled by.
--
Sent from my phone. Please excuse my brevity.
On November 4, 2016 11:35:02 AM PDT, Berend Hasselman <bhh at xs4all.nl> wrote:
>
>> On 4 Nov 2016, at 19:27, Berend Hasselman <bhh at xs4all.nl> wrote:
>>
>>>
>>> On 4 Nov 2016, at 16:41, Jeff Newmiller <jdnewmil at dcn.davis.ca.us>
>wrote:
>>>
>>> Sara wins on memory use.
>>>
>>> Rui wins on speed.
>>>
>>> Bert wins on clarity.
>>>
>>> library(microbenchmark)
>>>
>>> N <- 1000
>>> x <- matrix( runif( N*N ), ncol=N )
>>> y <- seq.int( N )
>>>
>>> microbenchmark( { t( y * t(x) ) }
>>> , { x %*% diag( y ) }
>>> , { sweep( x, 2, y, `*` ) }
>>> )
>>> Unit: milliseconds
>>> expr min lq median uq
> max neval
>>> { t(y * t(x)) } 6.659562 7.475414 7.871341 8.182623
>47.01105 100
>>> { x %*% diag(y) } 9.859292 11.014021 11.281334 11.733825
>48.79463 100
>>> { sweep(x, 2, y, `*`) } 16.535938 17.682175 18.283572 18.712342
>55.47159 100
>>
>>
>> I get different results with R3.2.2 on Mac OS X (using reference
>BLAS).
>>
>
>Correction: I meant R3.3.2
>
>Berend
More information about the R-help
mailing list