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