I am getting the following warning with nightly:
Warning: `randjump(rng, steps::Integer, len::Integer` is deprecated; use `Future.randjump` and `accumulate` instead
Future I could find is
Distributed.Future, which is a
The warnings were initially complaining about
randjump(rng, n*(gpt+1)) saying to use
Random.randjump(rng, big(10)^20, n*(gpt+1)) instead which, when I did, gave the above warning. Any clues or pointer to relevant docs?
My version of
master appears to have it:
julia> using Future
randjump(r::MersenneTwister, steps::Integer) -> MersenneTwister
Create an initialized MersenneTwister object, whose state is moved forward (without generating numbers) from r by steps steps. One such step corresponds to the generation of
two Float64 numbers. For each different value of steps, a large polynomial has to be generated internally. One is already pre-computed for steps=big(10)^20.
Found it, it was masked by “an existing identifier”, this single most annoying error when forgetting to import some stdlib package and having to restart REPL to find it. Thanks.
For the record, this is how I managed to replicate the default behavior of the old
oldrandjump(mt, len) = accumulate(Future.randjump, [0; [big(10)^20 for i in 1:len-1]], init = mt)
oldrandjump(mt, len) = [mt; accumulate(Future.randjump, [big(10)^20 for i in 1:len-1], init = mt)]
I am not sure if there is a more obvious way, as this one uses the non-obvious behavior of
accumulate with a function taking 2 arguments of different types.
This is not exactly correct. Old
randjump returned source object as a first element of an array. Your function returns a copy. So actually you should prepend
mt to a generated sequence without adding
0 element inside.
Actually you have an example of this in the Julia Manual in the last example of this section https://docs.julialang.org/en/latest/manual/parallel-computing/#The-@threads-Macro-1.
Corrected and thanks for the pointer.