FD.io VPP  v16.09
Vector Packet Processing
random_isaac.c File Reference
+ Include dependency graph for random_isaac.c:

Go to the source code of this file.

Macros

#define ind64(mm, x)   (*(u64 *)((u8 *)(mm) + ((x) & ((ISAAC_SIZE-1)<<3))))
 
#define rngstep64(mix, a, b, mm, m, m2, r, x, y)
 
#define mix64(a, b, c, d, e, f, g, h)
 

Functions

void isaac (isaac_t *ctx, uword *results)
 
void isaac2 (isaac_t *ctx, uword *results)
 
void isaac_init (isaac_t *ctx, uword *seeds)
 

Macro Definition Documentation

#define ind64 (   mm,
 
)    (*(u64 *)((u8 *)(mm) + ((x) & ((ISAAC_SIZE-1)<<3))))

Definition at line 245 of file random_isaac.c.

#define mix64 (   a,
  b,
  c,
  d,
  e,
  f,
  g,
 
)
Value:
{ \
a-=e; f^=h>>9; h+=a; \
b-=f; g^=a<<9; a+=b; \
c-=g; h^=b>>23; b+=c; \
d-=h; a^=c<<15; c+=d; \
e-=a; b^=d>>14; d+=e; \
f-=b; c^=e<<20; e+=f; \
g-=c; d^=f>>17; f+=g; \
h-=d; e^=g<<14; g+=h; \
}
a
Definition: bitmap.h:516
svmdb_client_t * c

Definition at line 355 of file random_isaac.c.

#define rngstep64 (   mix,
  a,
  b,
  mm,
  m,
  m2,
  r,
  x,
  y 
)
Value:
{ \
x = *m; \
a = (mix) + *(m2++); \
*(m++) = y = ind64(mm,x) + a + b; \
*(r++) = b = ind64(mm,y>>ISAAC_LOG2_SIZE) + x; \
}
a
Definition: bitmap.h:516
add_epi add_epi sub_epi sub_epi adds_epu subs_epu i16x8 y
Definition: vector_sse2.h:299
#define ISAAC_LOG2_SIZE
Definition: random_isaac.h:58
#define ind64(mm, x)
Definition: random_isaac.c:245

Definition at line 246 of file random_isaac.c.

Function Documentation

void isaac ( isaac_t ctx,
uword results 
)

Definition at line 255 of file random_isaac.c.

void isaac2 ( isaac_t ctx,
uword results 
)

Definition at line 292 of file random_isaac.c.

+ Here is the caller graph for this function:

void isaac_init ( isaac_t ctx,
uword seeds 
)

Definition at line 368 of file random_isaac.c.

+ Here is the caller graph for this function: