[R] Odp: optimizing speed of calculation (recursive product)
Berend Hasselman
bhh at xs4all.nl
Wed Sep 3 18:54:07 CEST 2008
Petr Pikal wrote:
>
> Hi
>
> r-help-bounces at r-project.org napsal dne 03.09.2008 16:39:07:
> ....
>> In many cases I've noticed that using apply, sapply etc can help
>> speeding up processes, but in this case I don't see how I could do so.
>>
>> a <- runif(10000000,0.5,1.6)
>> C <- 2
>> M <- 10000000
>> system.time( for (i in 1:(M-1)) {C <- C* c(a[i],a[i+1])} )
>
> Maybe simple math? You want last two members of 2*cumprod(a).
>
> So
>
>> system.time(2*cumprod(a)[9999999:10000000])
> user system elapsed
> 1.97 0.04 2.00
>>
>
> shall be a little bit quicker then for cycle. But it is valid only for the
> above calculation.
>
I think
2*c(cumprod(a)[M-1],cumprod(a[-1])[M-1])
is the answer.
Berend
--
View this message in context: http://www.nabble.com/optimizing-speed-of-calculation--%28recursive-product%29-tp19290678p19293353.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list