GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave_rand Class Reference

#include "oct-rand.h"

Collaboration diagram for octave_rand:

Public Member Functions

 ~octave_rand (void)=default
 

Static Public Member Functions

static std::string distribution (void)
 
static void distribution (const std::string &d)
 
static void exponential_distribution (void)
 
static FloatNDArray float_nd_array (const dim_vector &dims, float a=1.0)
 
static float float_scalar (float a=1.0)
 
static Array< floatfloat_vector (octave_idx_type n, float a=1.0)
 
static void gamma_distribution (void)
 
static bool instance_ok (void)
 
static NDArray nd_array (const dim_vector &dims, double a=1.0)
 
static void normal_distribution (void)
 
static void poisson_distribution (void)
 
static void reset (void)
 
static void reset (const std::string &d)
 
static double scalar (double a=1.0)
 
static double seed (void)
 
static void seed (double s)
 
static uint32NDArray state (const std::string &d="")
 
static void state (const uint32NDArray &s, const std::string &d="")
 
static void uniform_distribution (void)
 
static Array< doublevector (octave_idx_type n, double a=1.0)
 

Protected Member Functions

 octave_rand (void)
 

Private Types

enum  {
  unknown_dist, uniform_dist, normal_dist, expon_dist,
  poisson_dist, gamma_dist
}
 

Private Member Functions

std::string do_distribution (void)
 
void do_distribution (const std::string &d)
 
void do_exponential_distribution (void)
 
FloatNDArray do_float_nd_array (const dim_vector &dims, float a=1.)
 
float do_float_scalar (float a=1.)
 
Array< floatdo_float_vector (octave_idx_type n, float a=1.)
 
void do_gamma_distribution (void)
 
NDArray do_nd_array (const dim_vector &dims, double a=1.)
 
void do_normal_distribution (void)
 
void do_poisson_distribution (void)
 
void do_reset ()
 
void do_reset (const std::string &d)
 
double do_scalar (double a=1.)
 
double do_seed (void)
 
void do_seed (double s)
 
uint32NDArray do_state (const std::string &d)
 
void do_state (const uint32NDArray &s, const std::string &d)
 
void do_uniform_distribution (void)
 
Array< doubledo_vector (octave_idx_type n, double a=1.)
 
void fill (octave_idx_type len, double *v, double a)
 
void fill (octave_idx_type len, float *v, float a)
 
int get_dist_id (const std::string &d)
 
uint32NDArray get_internal_state (void)
 
void initialize_mersenne_twister (void)
 
void initialize_ranlib_generators (void)
 
void save_state (void)
 
void set_internal_state (const uint32NDArray &s)
 
void switch_to_generator (int dist)
 

Static Private Member Functions

static void cleanup_instance (void)
 

Private Attributes

int current_distribution
 
std::map< int, uint32NDArrayrand_states
 
bool use_old_generators
 

Static Private Attributes

static octave_randinstance = nullptr
 

Detailed Description

Definition at line 39 of file oct-rand.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
unknown_dist 
uniform_dist 
normal_dist 
expon_dist 
poisson_dist 
gamma_dist 

Definition at line 186 of file oct-rand.h.

Constructor & Destructor Documentation

◆ octave_rand()

octave_rand::octave_rand ( void  )
protected

Definition at line 48 of file oct-rand.cc.

References initialize_mersenne_twister(), and initialize_ranlib_generators().

Referenced by instance_ok().

◆ ~octave_rand()

octave_rand::~octave_rand ( void  )
default

Member Function Documentation

◆ cleanup_instance()

static void octave_rand::cleanup_instance ( void  )
inlinestaticprivate

Definition at line 184 of file oct-rand.h.

Referenced by instance_ok().

◆ distribution() [1/2]

◆ distribution() [2/2]

static void octave_rand::distribution ( const std::string d)
inlinestatic

Definition at line 103 of file oct-rand.h.

References d.

◆ do_distribution() [1/2]

std::string octave_rand::do_distribution ( void  )
private

◆ do_distribution() [2/2]

◆ do_exponential_distribution()

void octave_rand::do_exponential_distribution ( void  )
private

Definition at line 285 of file oct-rand.cc.

References expon_dist, F77_FUNC(), and switch_to_generator().

◆ do_float_nd_array()

FloatNDArray octave_rand::do_float_nd_array ( const dim_vector dims,
float  a = 1. 
)
private

Definition at line 521 of file oct-rand.cc.

References a, dims, fill(), octave_value::numel(), and retval.

◆ do_float_scalar()

◆ do_float_vector()

Array< float > octave_rand::do_float_vector ( octave_idx_type  n,
float  a = 1. 
)
private

Definition at line 489 of file oct-rand.cc.

References a, fill(), octave_value::numel(), and retval.

◆ do_gamma_distribution()

void octave_rand::do_gamma_distribution ( void  )
private

Definition at line 301 of file oct-rand.cc.

References F77_FUNC(), gamma_dist, and switch_to_generator().

◆ do_nd_array()

NDArray octave_rand::do_nd_array ( const dim_vector dims,
double  a = 1. 
)
private

Definition at line 506 of file oct-rand.cc.

References a, dims, fill(), octave_value::numel(), and retval.

◆ do_normal_distribution()

void octave_rand::do_normal_distribution ( void  )
private

Definition at line 277 of file oct-rand.cc.

References F77_FUNC(), normal_dist, and switch_to_generator().

◆ do_poisson_distribution()

void octave_rand::do_poisson_distribution ( void  )
private

Definition at line 293 of file oct-rand.cc.

References F77_FUNC(), poisson_dist, and switch_to_generator().

◆ do_reset() [1/2]

void octave_rand::do_reset ( void  )
private

Definition at line 143 of file oct-rand.cc.

References initialize_ranlib_generators(), and use_old_generators.

◆ do_reset() [2/2]

void octave_rand::do_reset ( const std::string d)
private

◆ do_scalar()

◆ do_seed() [1/2]

double octave_rand::do_seed ( void  )
private

◆ do_seed() [2/2]

void octave_rand::do_seed ( double  s)
private

◆ do_state() [1/2]

uint32NDArray octave_rand::do_state ( const std::string d)
private

Definition at line 150 of file oct-rand.cc.

References current_distribution, d, get_dist_id(), and rand_states.

◆ do_state() [2/2]

void octave_rand::do_state ( const uint32NDArray s,
const std::string d 
)
private

◆ do_uniform_distribution()

void octave_rand::do_uniform_distribution ( void  )
private

Definition at line 269 of file oct-rand.cc.

References F77_FUNC(), switch_to_generator(), and uniform_dist.

◆ do_vector()

Array< double > octave_rand::do_vector ( octave_idx_type  n,
double  a = 1. 
)
private

Definition at line 472 of file oct-rand.cc.

References a, fill(), octave_value::numel(), and retval.

◆ exponential_distribution()

static void octave_rand::exponential_distribution ( void  )
inlinestatic

Definition at line 121 of file oct-rand.h.

Referenced by do_distribution(), and do_rand().

◆ fill() [1/2]

◆ fill() [2/2]

◆ float_nd_array()

static FloatNDArray octave_rand::float_nd_array ( const dim_vector dims,
float  a = 1.0 
)
inlinestatic

Definition at line 174 of file oct-rand.h.

References a, and dims.

Referenced by do_rand().

◆ float_scalar()

static float octave_rand::float_scalar ( float  a = 1.0)
inlinestatic

Definition at line 147 of file oct-rand.h.

References a, and NaN().

Referenced by do_rand().

◆ float_vector()

static Array<float> octave_rand::float_vector ( octave_idx_type  n,
float  a = 1.0 
)
inlinestatic

Definition at line 160 of file oct-rand.h.

References a.

◆ gamma_distribution()

static void octave_rand::gamma_distribution ( void  )
inlinestatic

Definition at line 133 of file oct-rand.h.

Referenced by do_distribution(), and do_rand().

◆ get_dist_id()

int octave_rand::get_dist_id ( const std::string d)
private

◆ get_internal_state()

uint32NDArray octave_rand::get_internal_state ( void  )
private

Definition at line 592 of file oct-rand.cc.

References MT_N, oct_get_state(), and s.

Referenced by do_reset(), do_state(), initialize_mersenne_twister(), and save_state().

◆ initialize_mersenne_twister()

void octave_rand::initialize_mersenne_twister ( void  )
private

◆ initialize_ranlib_generators()

void octave_rand::initialize_ranlib_generators ( void  )
private

◆ instance_ok()

bool octave_rand::instance_ok ( void  )
static

◆ nd_array()

static NDArray octave_rand::nd_array ( const dim_vector dims,
double  a = 1.0 
)
inlinestatic

Definition at line 167 of file oct-rand.h.

References a, and dims.

Referenced by do_rand().

◆ normal_distribution()

static void octave_rand::normal_distribution ( void  )
inlinestatic

Definition at line 115 of file oct-rand.h.

Referenced by do_distribution(), and do_rand().

◆ poisson_distribution()

static void octave_rand::poisson_distribution ( void  )
inlinestatic

Definition at line 127 of file oct-rand.h.

Referenced by do_distribution(), and do_rand().

◆ reset() [1/2]

static void octave_rand::reset ( void  )
inlinestatic

Definition at line 68 of file oct-rand.h.

Referenced by do_rand().

◆ reset() [2/2]

static void octave_rand::reset ( const std::string d)
inlinestatic

Definition at line 89 of file oct-rand.h.

References d.

◆ save_state()

void octave_rand::save_state ( void  )
private

Definition at line 602 of file oct-rand.cc.

References current_distribution, get_internal_state(), and rand_states.

Referenced by do_float_scalar(), do_scalar(), and fill().

◆ scalar()

static double octave_rand::scalar ( double  a = 1.0)
inlinestatic

Definition at line 140 of file oct-rand.h.

References a, and NaN().

Referenced by do_rand().

◆ seed() [1/2]

static double octave_rand::seed ( void  )
inlinestatic

Definition at line 54 of file oct-rand.h.

References NaN().

Referenced by do_rand().

◆ seed() [2/2]

static void octave_rand::seed ( double  s)
inlinestatic

Definition at line 61 of file oct-rand.h.

References s.

◆ set_internal_state()

void octave_rand::set_internal_state ( const uint32NDArray s)
private

Definition at line 630 of file oct-rand.cc.

References MT_N, oct_init_by_array(), oct_set_state(), and s.

Referenced by do_state(), initialize_mersenne_twister(), and switch_to_generator().

◆ state() [1/2]

static uint32NDArray octave_rand::state ( const std::string d = "")
inlinestatic

Definition at line 75 of file oct-rand.h.

References d.

Referenced by do_rand().

◆ state() [2/2]

static void octave_rand::state ( const uint32NDArray s,
const std::string d = "" 
)
inlinestatic

Definition at line 81 of file oct-rand.h.

References d, and s.

◆ switch_to_generator()

void octave_rand::switch_to_generator ( int  dist)
private

◆ uniform_distribution()

static void octave_rand::uniform_distribution ( void  )
inlinestatic

Definition at line 109 of file oct-rand.h.

Referenced by do_distribution(), and do_rand().

◆ vector()

Member Data Documentation

◆ current_distribution

◆ instance

octave_rand * octave_rand::instance = nullptr
staticprivate

Definition at line 182 of file oct-rand.h.

Referenced by instance_ok().

◆ rand_states

std::map<int, uint32NDArray> octave_rand::rand_states
private

◆ use_old_generators

bool octave_rand::use_old_generators
private

Definition at line 201 of file oct-rand.h.

Referenced by do_float_scalar(), do_reset(), do_scalar(), do_seed(), do_state(), and fill().


The documentation for this class was generated from the following files: