Soar Kernel  9.3.2 08-06-12
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Data Structures | Functions
soar_rand.h File Reference
#include <iostream>
#include <limits.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include "Export.h"

Go to the source code of this file.

Data Structures

class  MTRand

Functions

std::ostream & operator<< (std::ostream &os, const MTRand &mtrand)
std::istream & operator>> (std::istream &is, MTRand &mtrand)
EXPORT double SoarRand ()
EXPORT double SoarRand (const double &max)
EXPORT uint32_t SoarRandInt ()
EXPORT uint32_t SoarRandInt (const uint32_t &max)
EXPORT void SoarSeedRNG ()
EXPORT void SoarSeedRNG (const uint32_t seed)

Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const MTRand mtrand 
)
inline

Definition at line 393 of file soar_rand.h.

References MTRand::left, MTRand::N, MTRand::state, and uint32_t().

{
register const uint32_t* s = mtrand.state;
register int i = mtrand.N;
for( ; i--; os << *s++ << "\t" ) {}
return os << mtrand.left;
}
std::istream& operator>> ( std::istream &  is,
MTRand mtrand 
)
inline

Definition at line 402 of file soar_rand.h.

References MTRand::left, MTRand::N, MTRand::pNext, MTRand::state, and uint32_t().

{
register uint32_t* s = mtrand.state;
register int i = mtrand.N;
for( ; i--; is >> *s++ ) {}
is >> mtrand.left;
mtrand.pNext = &mtrand.state[mtrand.N-mtrand.left];
return is;
}
EXPORT double SoarRand ( )
EXPORT double SoarRand ( const double &  max)

Definition at line 12 of file soar_rand.cpp.

References MTRand::rand().

{ return gSoarRand.rand(max); }
EXPORT uint32_t SoarRandInt ( )
EXPORT uint32_t SoarRandInt ( const uint32_t max)

Definition at line 20 of file soar_rand.cpp.

References MTRand::randInt().

{ return gSoarRand.randInt(max); }
EXPORT void SoarSeedRNG ( )

Definition at line 25 of file soar_rand.cpp.

References MTRand::seed().

Referenced by predict_srand_restore_snapshot().

EXPORT void SoarSeedRNG ( const uint32_t  seed)

Definition at line 29 of file soar_rand.cpp.

References MTRand::seed().

{ gSoarRand.seed(seed); }