35 #if !defined(LIBEVOCOSM_EVOGLOBAL_H)
36 #define LIBEVOCOSM_EVOGLOBAL_H
42 #include "libbrahe/prng.h"
50 #if !defined(_MSC_VER)
70 brahe_prng_state_t m_random;
76 brahe_prng_init(&m_random,BRAHE_PRNG_MWC1038,0);
82 brahe_prng_free(&m_random);
88 brahe_prng_init(&m_random,BRAHE_PRNG_MWC1038,a_seed);
94 return m_random.m_seed;
100 return brahe_prng_index(&m_random,n);
106 return brahe_prng_real2(&m_random);
210 virtual void report(
const std::string & a_text) = 0;
220 virtual void report_error(
const std::string & a_text) = 0;
235 virtual void yield() = 0;
314 virtual void report(
const std::string & a_text)
369 std::cout <<
"------------------------------------------------------------\ngeneration "
370 << a_generation_number <<
" begins" << std::endl;
390 std::cout <<
"\npopulation " << std::setw(2) << a_population_number <<
": " << std::flush;
420 std::cout <<
"." << std::flush;
432 virtual void report(
const std::string & a_text)
468 #if defined(_MSC_VER)
virtual void run_complete()=0
Evocosm is finished.
virtual void ping_population_end(size_t a_population_number)
Ping that a population ends.
Definition: evocommon.h:398
static uint32_t get_seed()
Set the seed for the random number generator.
Definition: evocommon.h:138
virtual void ping_population_end(size_t a_population_number)
Ping that a population ends.
Definition: evocommon.h:280
virtual void ping_fitness_test_end(size_t a_organism_number)
Ping that a test run ends.
Definition: evocommon.h:300
virtual void ping_population_begin(size_t a_population_number)
Ping that a population begins.
Definition: evocommon.h:388
virtual void ping_population_end(size_t a_population_number)=0
Ping that a population ends.
virtual void ping_population_begin(size_t a_population_number)=0
Ping that a population begins.
virtual void ping_generation_begin(size_t a_generation_number)=0
Ping that a generation begins.
The random number generator used by Evocosm.
Definition: evocommon.h:67
static size_t rand_index(size_t n)
Static function to allow use of g_random function pointer in random_shuffle.
Definition: evocommon.h:119
static std::string g_version
Version number.
Definition: evocommon.h:128
virtual void ping_generation_end(size_t a_generation_number)=0
Ping that a generation ends.
virtual void ping_fitness_test_begin(size_t a_organism_number)
Ping that a test run begins.
Definition: evocommon.h:290
size_t get_index(size_t n)
get a random index value
Definition: evocommon.h:98
double get_real()
get the next value in the range [0,1)
Definition: evocommon.h:104
virtual void yield()
Yield.
Definition: evocommon.h:348
virtual void report(const std::string &a_text)
Report non-specific text.
Definition: evocommon.h:432
virtual void run_complete()
Evocosm is finished.
Definition: evocommon.h:337
virtual void report(const std::string &a_text)
Report non-specific text.
Definition: evocommon.h:314
virtual void report_error(const std::string &a_text)=0
Send error message.
virtual void report_error(const std::string &a_text)
Send error message.
Definition: evocommon.h:327
An abstract interface defining a listener.
Definition: evocommon.h:156
prng()
Constructor.
Definition: evocommon.h:74
virtual void ping_fitness_test_begin(size_t a_organism_number)=0
Ping that a test run begins.
virtual void ping_generation_begin(size_t a_generation_number)
Ping that a generation begins.
Definition: evocommon.h:367
static prng g_random
A shared random number generator.
Definition: evocommon.h:125
An listener implementation that ignores all events.
Definition: evocommon.h:242
virtual void ping_fitness_test_end(size_t a_organism_number)
Ping that a test run ends.
Definition: evocommon.h:418
virtual void run_complete()
Evocosm is finished.
Definition: evocommon.h:455
virtual void ping_fitness_test_end(size_t a_organism_number)=0
Ping that a test run ends.
virtual void ping_population_begin(size_t a_population_number)
Ping that a population begins.
Definition: evocommon.h:270
virtual void ping_generation_end(size_t a_generation_number)
Ping that a generation ends.
Definition: evocommon.h:378
virtual void report(const std::string &a_text)=0
Report non-specific text.
A toolkit and framework for implementing evolutionary algorithms.
Definition: evocommon.h:60
An listener implementation that ignores all events.
Definition: evocommon.h:359
void set_seed(uint32_t a_seed)
Set the seed for the random number generator.
Definition: evocommon.h:86
virtual void report_error(const std::string &a_text)
Send error message.
Definition: evocommon.h:445
Elements shared by all classes in Evocosm.
Definition: evocommon.h:115
virtual void ping_fitness_test_begin(size_t a_organism_number)
Ping that a test run begins.
Definition: evocommon.h:408
virtual void yield()=0
Yield.
uint32_t get_seed()
get seed value
Definition: evocommon.h:92
~prng()
Destructor.
Definition: evocommon.h:80
virtual void ping_generation_end(size_t a_generation_number)
Ping that a generation ends.
Definition: evocommon.h:260
virtual void ping_generation_begin(size_t a_generation_number)
Ping that a generation begins.
Definition: evocommon.h:250
static std::string version()
Get version number.
Definition: evocommon.h:144
virtual void yield()
Yield.
Definition: evocommon.h:466
static void set_random_seed(uint32_t a_seed)
Set the seed for the random number generator.
Definition: evocommon.h:132