--- rand-mt.h.~1.1.1.1.~ 2000-06-19 08:26:12.000000000 -0400 +++ rand-mt.h 2003-09-05 21:42:02.000000000 -0400 @@ -85,8 +85,8 @@ void seed (twist_int seed = reference_seed) { - if (!S.size()) S.resize (N); + if (!S.size()) S.resize(N); enum { Knuth_A = 69069 }; twist_int x = seed & 0xFFFFFFFF; - Iter s = &S[0]; + Iter s = S.begin(); twist_int mask = (seed == reference_seed) ? 0 : 0xFFFFFFFF; for (int j = 0; j < N; ++j) { @@ -96,4 +96,5 @@ x *= Knuth_A; } + reload(); } @@ -102,16 +103,16 @@ if (!S.size()) seed (); // auto-seed detection - Iter p0 = &S[0]; + Iter p0 = S.begin(); Iter pM = p0 + PF; BitMixer twist; twist (S[0]); // prime the pump - for (Iter pf_end = &S[N-PF]; p0 != pf_end; ++p0, ++pM) + for (Iter pf_end = S.begin()+(N-PF); p0 != pf_end; ++p0, ++pM) *p0 = *pM ^ twist (p0[1]); pM = S.begin(); - for (Iter s_end = &S[N-1]; p0 != s_end; ++p0, ++pM) + for (Iter s_end = S.begin()+(N-1); p0 != s_end; ++p0, ++pM) *p0 = *pM ^ twist (p0[1]); *p0 = *pM ^ twist (S[0]); - I = &S[0]; + I = S.begin(); }