Go to the documentation of this file.
39 template <UINT32 ALPHA = (8)>
44 typedef unsigned char byte;
72 virtual void randinit(randctx* ctx,
bool bUseSeed);
76 enum {
N = (1<<ALPHA)};
80 virtual void isaac(randctx* ctx);
95 template<UINT32 ALPHA>
102 template<UINT32 ALPHA>
109 template<UINT32 ALPHA>
112 for(
int i = 0;
i <
N;
i++)
125 template<UINT32 ALPHA>
134 template<UINT32 ALPHA>
162 for(
i=0;
i <
N;
i+=8)
175 for(
i=0;
i <
N;
i += 8)
202 template<UINT32 ALPHA>
205 return (*(
UINT32*)((
byte*)(
mm) + ((
x) & ((
N-1)<<2))));
209 template<UINT32 ALPHA>
213 a = (
a^(mix)) + *(m2++);
219 template<UINT32 ALPHA>
226 e^=
f<<10; h+=
e;
f+=
g;
233 template<UINT32 ALPHA>
242 UINT32 b = (ctx->randb + (++ctx->randc));
271 #endif // __ISAAC_HPP
const UINT32 GOLDEN_RATIO
UINT32 ind(UINT32 *mm, UINT32 x)
void rngstep(UINT32 mix, UINT32 &a, UINT32 &b, UINT32 *&mm, UINT32 *&m, UINT32 *&m2, UINT32 *&r, UINT32 &x, UINT32 &y)
virtual void isaac(randctx *ctx)
virtual void randinit(randctx *ctx, bool bUseSeed)
virtual void srand(UINT32 a=0, UINT32 b=0, UINT32 c=0, UINT32 *s=NULL)
virtual void shuffle(UINT32 &a, UINT32 &b, UINT32 &c, UINT32 &d, UINT32 &e, UINT32 &f, UINT32 &g, UINT32 &h)
QTIsaac(UINT32 a=0, UINT32 b=0, UINT32 c=0)
Generated on Wed Sep 30 2020 14:02:17 for gem5 by doxygen 1.8.17