ZBar bar code reader . http://zbar.sourceforge.net/ ZBar is licensed under the GNU LGPL 2.1 to enable development of both open source and commercial projects.

Dependents:   GR-PEACH_Camera_in_barcode levkov_ov7670

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers isaac.h Source File

isaac.h

00001 /*Written by Timothy B. Terriberry (tterribe@xiph.org) 1999-2009 public domain.
00002   Based on the public domain implementation by Robert J. Jenkins Jr.*/
00003 #if !defined(_isaac_H)
00004 # define _isaac_H (1)
00005 
00006 
00007 
00008 typedef struct isaac_ctx isaac_ctx;
00009 
00010 
00011 
00012 #define ISAAC_SZ_LOG      (8)
00013 #define ISAAC_SZ          (1<<ISAAC_SZ_LOG)
00014 #define ISAAC_SEED_SZ_MAX (ISAAC_SZ<<2)
00015 
00016 
00017 
00018 /*ISAAC is the most advanced of a series of Pseudo-Random Number Generators
00019    designed by Robert J. Jenkins Jr. in 1996.
00020   http://www.burtleburtle.net/bob/rand/isaac.html
00021   To quote:
00022     No efficient method is known for deducing their internal states.
00023     ISAAC requires an amortized 18.75 instructions to produce a 32-bit value.
00024     There are no cycles in ISAAC shorter than 2**40 values.
00025     The expected cycle length is 2**8295 values.*/
00026 struct isaac_ctx{
00027   unsigned n;
00028   unsigned r[ISAAC_SZ];
00029   unsigned m[ISAAC_SZ];
00030   unsigned a;
00031   unsigned b;
00032   unsigned c;
00033 };
00034 
00035 
00036 void isaac_init(isaac_ctx *_ctx,const void *_seed,int _nseed);
00037 
00038 unsigned isaac_next_uint32(isaac_ctx *_ctx);
00039 unsigned isaac_next_uint(isaac_ctx *_ctx,unsigned _n);
00040 
00041 #endif
00042