dSFMT-jump  0.1
Data Structures | Functions | Variables
dSFMT-jump.c File Reference

do jump using jump polynomial. More...

#include <assert.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "dSFMT-params.h"
#include "dSFMT.h"
#include "dSFMT-jump.h"
#include "dSFMT-common.h"

Data Structures

struct  FIX_T

Functions

static void next_state (dsfmt_t *dsfmt)
 calculate next state
static void add (dsfmt_t *dest, dsfmt_t *src)
static void add_fix (dsfmt_t *dsfmt)
void dSFMT_jump (dsfmt_t *dsfmt, const char *jump_string)
 jump ahead using jump_string

Variables

struct FIX_T fix_table []

Detailed Description

do jump using jump polynomial.

Author:
Mutsuo Saito (Hiroshima University)
Makoto Matsumoto (The University of Tokyo)

Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto, Hiroshima University and The University of Tokyo. All rights reserved.

The 3-clause BSD License is applied to this software, see LICENSE.txt


Function Documentation

static void add ( dsfmt_t *  dest,
dsfmt_t *  src 
) [inline, static]

Referenced by dSFMT_jump().

static void add_fix ( dsfmt_t *  dsfmt) [inline, static]

References FIX_T::fix, and FIX_T::mexp.

Referenced by dSFMT_jump().

void dSFMT_jump ( dsfmt_t *  dsfmt,
const char *  jump_string 
)

jump ahead using jump_string

Parameters:
dsfmtdSFMT internal state input and output.
jump_stringstring which represents jump polynomial.

References add(), add_fix(), and next_state().

static void next_state ( dsfmt_t *  dsfmt) [inline, static]

calculate next state

Parameters:
dsfmtdSFMT internal state

Referenced by dSFMT_jump().


Variable Documentation

struct FIX_T fix_table[]
Initial value:
 {
        {521, {UINT64_C(0x3fff56977f035125),
               UINT64_C(0x3ff553857b015035),
               UINT64_C(0x4034434434434434),
               UINT64_C(0x0140151151351371)}},
        {1279, {UINT64_C(0x3ff87befce70e89f),
                UINT64_C(0x3ff5f6afa3c60868),
                UINT64_C(0xa4ca4caccaccacdb),
                UINT64_C(0x40444444444c44c4)}},
        {4253, {UINT64_C(0x3ff85a66da51a81a),
                UINT64_C(0x3ff4f4aeab9688eb),
                UINT64_C(0x20524524534d34d3),
                UINT64_C(0xc9cc9cc9cc9ccdcf)}},
        {216091, {UINT64_C(0x3ff096d54a871071),
                  UINT64_C(0x3ffafa9bfbd5d55d),
                  UINT64_C(0x0470470470573573),
                  UINT64_C(0x0250250251259259)}},
        {0, {}}
    }