1
Fork 0
mirror of https://github.com/naehrwert/scetool.git synced 2025-04-24 21:57:45 +00:00
scetool/src/mt19937.h
Sorvigolova e5b9ac8a9b Updated to v. 0.2.10
- Added ECDSA Signature parsing and validation.
- Added klicensee parsing for raw mode.
- Fixed metadata info IV parsing.
- Fixed Makefile.
- Enabled Individuals seed functions for <public build> configuration.
2014-10-30 01:22:20 +03:00

41 lines
918 B
C

//Mersenne-Twister 19937 pseudorandom number generator.
//Reference implementation at:
//http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c
#ifndef _MT19937_H_
#define _MT19937_H_
/*! State size. */
#define MT_N 624
#define MT_M 397
#define MT_MATRIX_A 0x9908b0df
#define MT_UPPER_MASK 0x80000000
#define MT_LOWER_MASK 0x7fffffff
/*! Mersenne-Twister 19937 context. */
typedef struct _mt19937_ctxt
{
/*! State. */
unsigned int state[MT_N];
/*! Index. */
unsigned int idx;
} mt19937_ctxt_t;
/*!
* \brief Initialize Mersenne-Twister 19937 context.
*
* \param ctxt Mersenne-Twister 19937 context.
* \param seed Random seed.
*/
void mt19937_init(mt19937_ctxt_t *ctxt, unsigned int seed);
/*!
* \brief Update Mersenne-Twister 19937 state.
*
* \param ctxt Mersenne-Twister 19937 context.
*
* \return Generated pseudorandom number.
*/
unsigned int mt19937_update(mt19937_ctxt_t *ctxt);
#endif