Thank you: a minor difference, from 20 to 17 seconds using sizehint. On Sat, Oct 18, 2014 at 5:47 AM, Jacob Quinn <[email protected]> wrote:
> Check out sizehint(). > On Oct 17, 2014 11:32 PM, "Michele Zaffalon" <[email protected]> > wrote: > >> Hello, >> >> I am using a dict as a look up table for the result of a computation (it >> is for a Coursera class on cryptography if anybody is wondering): >> >> accum = BigInt(1) >> lhs = Dict(accum => 0) >> for x1 = 1:2^20-1 >> accum = rem(accum * invg, p) >> lhs[accum] = x1 >> end >> >> and this takes about 20 seconds on my computer. On the other hand, for >> comparison (but not useful for my purpose because I index by the variable >> x1), storing the result in an array of preallocated size is about 2 >> seconds. Here is the code: >> >> lhs = Array(Float64, 2^20) >> for x1 = 1:2^20-1 >> accum = rem(accum * invg, p) >> lhs[x1] = accum >> end >> >> Declaring >> lhs = Dict{BigInt, Int64}(accum => 0) >> does not make any difference. >> >> Is there a way of preallocating the dictionary of a given size? >> >> Thank you, >> michele >> >
