Back to index

numactl  2.0.8~rc4
Defines | Functions | Variables
mt.c File Reference
#include <stdlib.h>
#include "mt.h"

Go to the source code of this file.

Defines

#define MT_IA   397
#define MT_IB   (MT_LEN - MT_IA)
#define UPPER_MASK   0x80000000
#define LOWER_MASK   0x7FFFFFFF
#define MATRIX_A   0x9908B0DF
#define TWIST(b, i, j)   ((b)[i] & UPPER_MASK) | ((b)[j] & LOWER_MASK)
#define MAGIC(s)   (((s)&1)*MATRIX_A)

Functions

void mt_init (void)
void mt_refill (void)

Variables

int mt_index
unsigned int mt_buffer [MT_LEN]

Define Documentation

#define LOWER_MASK   0x7FFFFFFF

Definition at line 22 of file mt.c.

#define MAGIC (   s)    (((s)&1)*MATRIX_A)

Definition at line 25 of file mt.c.

#define MATRIX_A   0x9908B0DF

Definition at line 23 of file mt.c.

#define MT_IA   397

Definition at line 19 of file mt.c.

#define MT_IB   (MT_LEN - MT_IA)

Definition at line 20 of file mt.c.

#define TWIST (   b,
  i,
 
)    ((b)[i] & UPPER_MASK) | ((b)[j] & LOWER_MASK)

Definition at line 24 of file mt.c.

#define UPPER_MASK   0x80000000

Definition at line 21 of file mt.c.


Function Documentation

void mt_init ( void  )

Definition at line 10 of file mt.c.

{
    int i;
    srand(1);
    for (i = 0; i < MT_LEN; i++)
        mt_buffer[i] = rand();
    mt_index = 0;
}

Here is the caller graph for this function:

void mt_refill ( void  )

Definition at line 27 of file mt.c.

{
       int i;
       unsigned int s;
       unsigned int * b = mt_buffer;

       mt_index = 0;
        i = 0;
        for (; i < MT_IB; i++) {
            s = TWIST(b, i, i+1);
            b[i] = b[i + MT_IA] ^ (s >> 1) ^ MAGIC(s);
        }
        for (; i < MT_LEN-1; i++) {
            s = TWIST(b, i, i+1);
            b[i] = b[i - MT_IB] ^ (s >> 1) ^ MAGIC(s);
        }

        s = TWIST(b, MT_LEN-1, 0);
        b[MT_LEN-1] = b[MT_IA-1] ^ (s >> 1) ^ MAGIC(s);
}

Here is the caller graph for this function:


Variable Documentation

unsigned int mt_buffer[MT_LEN]

Definition at line 8 of file mt.c.

int mt_index

Definition at line 7 of file mt.c.