Sha256: 52d8f186cd6efbbfd2e95f1cf4680f0dfc74cd369df490100bb21d9921107929

Contents?: true

Size: 1.07 KB

Versions: 51

Compression:

Stored size: 1.07 KB

Contents

/*Written by Timothy B. Terriberry (tterribe@xiph.org) 1999-2009 public domain.
  Based on the public domain implementation by Robert J. Jenkins Jr.*/
#if !defined(_isaac_H)
# define _isaac_H (1)



typedef struct isaac_ctx isaac_ctx;



#define ISAAC_SZ_LOG      (8)
#define ISAAC_SZ          (1<<ISAAC_SZ_LOG)
#define ISAAC_SEED_SZ_MAX (ISAAC_SZ<<2)



/*ISAAC is the most advanced of a series of Pseudo-Random Number Generators
   designed by Robert J. Jenkins Jr. in 1996.
  http://www.burtleburtle.net/bob/rand/isaac.html
  To quote:
    No efficient method is known for deducing their internal states.
    ISAAC requires an amortized 18.75 instructions to produce a 32-bit value.
    There are no cycles in ISAAC shorter than 2**40 values.
    The expected cycle length is 2**8295 values.*/
struct isaac_ctx{
  unsigned n;
  unsigned r[ISAAC_SZ];
  unsigned m[ISAAC_SZ];
  unsigned a;
  unsigned b;
  unsigned c;
};


void isaac_init(isaac_ctx *_ctx,const void *_seed,int _nseed);

unsigned isaac_next_uint32(isaac_ctx *_ctx);
unsigned isaac_next_uint(isaac_ctx *_ctx,unsigned _n);

#endif

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
rhodes-3.0.2 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.2.beta.1 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1.beta.8 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1.beta.7 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1.beta.6 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1.beta.5 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1.beta.4 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1.beta.3 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.1.beta.2 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0.beta.7 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0.beta.6 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0.beta.5 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0.beta.4 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0.beta.3 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0.beta.2 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-3.0.0.beta.1 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-2.4.1 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h
rhodes-2.4.1.beta.1 lib/extensions/barcode/ext/barcode/shared/zbar/zbar/zbar/qrcode/isaac.h