Loading [MathJax]/extensions/ams.js
ALMaSS  1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ALMaSS_Random.h
Go to the documentation of this file.
1 
46 #ifndef ALMASS_RANDOM_H
47 #define ALMASS_RANDOM_H
48 
49 
53 double g_rand_uni_fnc();
57 int g_rand_uni2_fnc();
58 int g_rand_uni3_fnc();
59 int g_random_fnc(int a_range);
60 
61 
65 void g_generator_fixed_fnc(unsigned int s = 42);
66 
71 
72 private:
73 
81  const std::string DISCRETE_DIST_S{ "DISCRETE" };
82 
91  const std::string BETABINOMIAL_DIST_S{ "BETABINOMIAL" };
92 
98  const std::string NORMAL_DIST_S{ "NORMAL" };
99 
105  const std::string UNIREAL_DIST_S{ "UNIREAL" };
106 
112  const std::string UNIINT_DIST_S{ "UNIINT" };
113 
114 
120  const std::string BETA_DIST_S{ "BETA" };
121 
122 
128  const std::string GAMMA_DIST_S{ "GAMMA" };
129 
130 
136  const std::string CAUCHY_DIST_S{ "CAUCHY" };
137 
138 
144  const std::string EXPONENTIAL_DIST_S{ "EXPONENTIAL" };
145 
146  static const int DISCRETE_DIST_T = 1;
147  static const int NORMAL_DIST_T = 2;
148  static const int UNIREAL_DIST_T = 3;
149  static const int UNIINT_DIST_T = 4;
150  static const int BETA_DIST_T = 5;
151  static const int GAMMA_DIST_T = 6;
152  static const int CAUCHY_DIST_T = 7;
153  static const int EXPONENTIAL_DIST_T = 8;
154 
155  void* m_probDistrib; /* Alternatively could use boost:variant as a union of different distribution types, and a visitor syntax; To test which is faster, classic or variant */
158  int m_type;
159 
160 public:
161 
168  probability_distribution(const std::string& prob_type, std::string prob_params);
169 
170  //
171  // Constructor of the class, version 2
172  //
173  // \param[in] prob_type a string containing the label of the distribution, must match the supported/predefined values
174  // \param[in] prob_params a vector of numerical values associated with the distribution type
175  //
176  // probability_distribution(std::string prob_type, std::vector<double> prob_params);
177 
183  double Get() const;
184 
191  int Geti() const;
192 
194 
195 };
196 
198 
199 
200 #endif // ALMASS_RANDOM_H
cfg_VoleCatastrophe_interval
static CfgInt cfg_VoleCatastrophe_interval("VOLE_CATASTROPHE_I", CFG_CUSTOM, 365 *5)
CreatePlantGrowthData
PlantGrowthData * CreatePlantGrowthData()
Definition: Plants.cpp:842
TOP_Skylark
Definition: PopulationManager.h:59
TOP_Newt
Definition: PopulationManager.h:68
CfgStr::set
void set(std::string a_newval)
Definition: Configurator.h:183
g_uni_std_dist
std::uniform_real_distribution g_uni_std_dist(0, 1)
TOP_Hunters
Definition: PopulationManager.h:81
Probe_Data::OpenFile
ofstream * OpenFile(const string &Nme)
Definition: PopulationManager.cpp:1666
delay
void delay(int secs)
Definition: ALMaSS_CmdLine.cpp:179
g_rand_uni_fnc
double g_rand_uni_fnc()
Definition: ALMaSS_Random.cpp:56
probability_distribution::UNIINT_DIST_T
static const int UNIINT_DIST_T
Definition: ALMaSS_Random.h:149
WARN_MSG
Definition: MapErrorMsg.h:38
probability_distribution::m_probDistrib1
void * m_probDistrib1
Definition: ALMaSS_Random.h:156
g_Steps
int g_Steps
Definition: ALMaSS_CmdLine.cpp:159
g_init_random_seed_fnc
void g_init_random_seed_fnc()
Init_random_seed() randomizes the random generator based on the configuration (either fixed seed or r...
Definition: ALMaSS_Random.cpp:407
cfg_LadybirdAphidPreyIndex
CfgInt cfg_LadybirdAphidPreyIndex
The aphid species name.
Calendar::TickHour
bool TickHour(void)
Definition: Calendar.cpp:178
cfg_dumpvegjune
CfgBool cfg_dumpvegjune
cfg_dumpvegjunefile
CfgStr cfg_dumpvegjunefile
cfg_dumpvegjan
CfgBool cfg_dumpvegjan
PopulationManagerList::SetPopulation
void SetPopulation(std::shared_ptr< Population_Manager_Base > p_pm, int a_pt)
Definition: PopulationManager.h:949
g_Hunter_Population_Manager
std::shared_ptr< Hunter_Population_Manager > g_Hunter_Population_Manager
Definition: ALMaSS_CmdLine.cpp:149
g_beta_binomial_probabilities_fnc
std::vector< double > g_beta_binomial_probabilities_fnc(const int a_n, const double a_alpha, const double a_beta, const bool a_noZero)
Local utility function for generating the weights-vector for the beta binomial distribution from inpu...
Definition: ALMaSS_Random.cpp:102
probability_distribution::m_type
int m_type
Definition: ALMaSS_Random.h:158
g_rand_uni3_fnc
int g_rand_uni3_fnc()
Definition: ALMaSS_Random.cpp:68
TOP_Bombus
Definition: PopulationManager.h:73
CfgStr::value
char * value() const
Definition: Configurator.h:182
TOP_Osmia
Definition: PopulationManager.h:69
PopulationManagerList
A small class to hold the pointers to active population managers.
Definition: PopulationManager.h:946
Calendar::CreateDaylength
void CreateDaylength(double latitude, double longitude, int timezone, int year=2021)
Definition: Calendar.cpp:66
MapErrorMsg::WarnAddInfo
void WarnAddInfo(MapErrorState a_level, std::string a_add1, std::string a_add2)
Definition: MapErrorMsg.cpp:160
Landscape::SupplyLongitude
double SupplyLongitude()
Returns m_longitude of the landscape location.
Definition: Landscape.h:607
g_rand_uni3_fnc
int g_rand_uni3_fnc()
Definition: ALMaSS_Random.cpp:68
g_uni_dist2
std::uniform_int_distribution g_uni_dist2(0, 9999)
CfgStr
String configurator entry class.
Definition: Configurator.h:173
TOP_ApisRAM
Definition: PopulationManager.h:70
g_date
class Calendar * g_date
Definition: Calendar.cpp:37
g_rand_uni2_fnc
int g_rand_uni2_fnc()
Definition: ALMaSS_Random.cpp:62
Landscape::SupplyLatitude
double SupplyLatitude()
Returns m_latitude of the landscape location.
Definition: Landscape.h:605
UNIINT_DIST
std::uniform_int_distribution< int > UNIINT_DIST
Definition: ALMaSS_Random.cpp:118
cfg_LadybirdAphidPreySpecies
CfgInt cfg_LadybirdAphidPreySpecies
The number of aphid species in the simulation.
TOP_PoecilusCupreus
Definition: PopulationManager.h:78
CreateConfigurator
std::shared_ptr< Configurator > CreateConfigurator()
Definition: Configurator.cpp:1413
Landscape::SupplyTimezone
int SupplyTimezone()
Definition: Landscape.h:583
g_PredatorManager
std::shared_ptr< TPredator_Population_Manager > g_PredatorManager
Definition: ALMaSS_CmdLine.cpp:151
CreateCalendar
Calendar * CreateCalendar()
Definition: Calendar.cpp:230
g_rand_uni_fnc
double g_rand_uni_fnc()
Definition: ALMaSS_Random.cpp:56
g_cfg
std::shared_ptr< Configurator > g_cfg
Definition: Configurator.cpp:56
CreateLandscape
Landscape * CreateLandscape()
Definition: ALMaSS_CmdLine.cpp:791
Landscape::SupplyMonth
int SupplyMonth(void)
Passes a request on to the associated Calendar class function, returns m_month + 1 (the calendar mont...
Definition: Landscape.h:2272
probability_distribution::GAMMA_DIST_T
static const int GAMMA_DIST_T
Definition: ALMaSS_Random.h:151
MapErrorMsg::SetFilename
void SetFilename(std::string a_warnfile)
Definition: MapErrorMsg.cpp:48
TOP_Goose
Definition: PopulationManager.h:65
probability_distribution
Definition: ALMaSS_Random.h:70
CreatePollenNectarDevelopmentData
PollenNectarDevelopmentData * CreatePollenNectarDevelopmentData()
Definition: PollenNectar.cpp:294
g_Species
TTypesOfPopulation g_Species
Definition: PopulationManager.cpp:101
cfg_AorOutput_used
CfgBool cfg_AorOutput_used
CreateErrorMsg
MapErrorMsg * CreateErrorMsg()
Definition: MapErrorMsg.cpp:202
CreateLETypeClass
LE_TypeClass * CreateLETypeClass()
Definition: Elements.cpp:3434
g_binomial_coefficient
int g_binomial_coefficient(const int n, const int k)
Definition: ALMaSS_Random.cpp:89
TOP_Bembidion
Definition: PopulationManager.h:62
g_nectarpollen
class PollenNectarDevelopmentData * g_nectarpollen
Definition: Plants.cpp:41
cfg_IniFileName
CfgStr cfg_IniFileName("INI_FILE", CFG_CUSTOM, "BatchALMaSS.ini")
g_randmaxp
const double g_randmaxp
Definition: ALMaSS_CmdLine.cpp:103
g_random_fnc
int g_random_fnc(int a_range)
Definition: ALMaSS_Random.cpp:74
g_rand_uni2_fnc
int g_rand_uni2_fnc()
Definition: ALMaSS_Random.cpp:62
probability_distribution::Geti
int Geti() const
Definition: ALMaSS_Random.cpp:335
g_ResultsDir
char g_ResultsDir[255]
Definition: ALMaSS_CmdLine.cpp:155
RunTheSim
void RunTheSim()
Definition: ALMaSS_CmdLine.cpp:728
probability_distribution::BETABINOMIAL_DIST_S
const std::string BETABINOMIAL_DIST_S
Definition: ALMaSS_Random.h:91
probability_distribution::NORMAL_DIST_T
static const int NORMAL_DIST_T
Definition: ALMaSS_Random.h:147
CfgBool::value
bool value() const
Definition: Configurator.h:164
probability_distribution::EXPONENTIAL_DIST_S
const std::string EXPONENTIAL_DIST_S
Definition: ALMaSS_Random.h:144
probability_distribution::~probability_distribution
~probability_distribution()
Definition: ALMaSS_Random.cpp:353
probability_distribution::BETA_DIST_T
static const int BETA_DIST_T
Definition: ALMaSS_Random.h:150
ALMaSS_MathFuncs
ALMaSS_MathFuncs constructor.
Definition: Misc.h:28
Landscape::TurnTheWorld
void TurnTheWorld(void)
Definition: Landscape.h:1498
g_uni_dist3
std::uniform_int_distribution g_uni_dist3(0, 999)
Probe_Data
Data structure to hold & output probe data probe data is designed to be used to return the number of ...
Definition: PopulationManager.h:421
Aphid_Population_Manager
The class to handle all Aphid population related matters in the whole landscape.
Definition: Aphid_Population_Manager.h:98
probability_distribution::m_probDistrib2
void * m_probDistrib2
Definition: ALMaSS_Random.h:157
cfg_AphidSpeciesName
CfgStr cfg_AphidSpeciesName
This variable decides which aphid species to run. The default one is the English grain aphid.
TOP_Rabbit
Definition: PopulationManager.h:67
TOP_Aphid
Definition: PopulationManager.h:75
Landscape
The landscape class containing all environmental and topographical data.
Definition: Landscape.h:142
probability_distribution::CAUCHY_DIST_S
const std::string CAUCHY_DIST_S
Definition: ALMaSS_Random.h:136
TOP_Partridge
Definition: PopulationManager.h:64
probability_distribution::UNIREAL_DIST_T
static const int UNIREAL_DIST_T
Definition: ALMaSS_Random.h:148
Landscape::RunHiddenYear
void RunHiddenYear()
The function to generate the vector list of pixies for polygons with flower resource.
Definition: Landscape.cpp:2781
Landscape::SupplyDayInMonth
int SupplyDayInMonth(void)
Passes a request on to the associated Calendar class function, returns m_day_in_month
Definition: Landscape.h:2277
TOP_Disturbers
Definition: PopulationManager.h:84
Landscape::SetSpeciesFunctions
void SetSpeciesFunctions(TTypesOfPopulation a_species)
This is the jumping off point for any landscape related species setup, it creates function pointers t...
Definition: Landscape.cpp:7821
Ladybird_Population_Manager
Definition: Ladybird_All.h:386
g_init_random_seed_fnc
void g_init_random_seed_fnc()
Init_random_seed() randomizes the random generator based on the configuration (either fixed seed or r...
Definition: ALMaSS_Random.cpp:407
TOP_Hare
Definition: PopulationManager.h:63
SetOutputFiles
void SetOutputFiles()
Definition: ALMaSS_CmdLine.cpp:499
cfg_AORProbeName
CfgStr cfg_AORProbeName("AOR_PROBE_NAME", CFG_CUSTOM, "AOR_Probe.txt")
CloseDownSim
void CloseDownSim()
Definition: ALMaSS_CmdLine.cpp:695
CfgBool
Bool configurator entry class.
Definition: Configurator.h:155
g_PredResultsDir
char g_PredResultsDir[255]
Definition: ALMaSS_CmdLine.cpp:156
WARN_UNDEF
Definition: MapErrorMsg.h:36
g_Disturber_Population_Manager
std::shared_ptr< Disturber_Population_Manager > g_Disturber_Population_Manager
Definition: ALMaSS_CmdLine.cpp:150
probability_distribution::DISCRETE_DIST_S
const std::string DISCRETE_DIST_S
Definition: ALMaSS_Random.h:81
probability_distribution::m_probDistrib
void * m_probDistrib
Definition: ALMaSS_Random.h:155
cfg_OldProbeNames
CfgBool cfg_OldProbeNames("OLDSTYLEPROBENAMES", CFG_CUSTOM, true)
CreateWeather
Weather * CreateWeather()
Definition: Weather.cpp:738
g_AManager
std::shared_ptr< Population_Manager_Base > g_AManager
Definition: ALMaSS_CmdLine.cpp:148
TOP_NoSpecies
Definition: PopulationManager.h:58
MapErrorMsg::SetWarnLevel
void SetWarnLevel(MapErrorState a_level)
Definition: MapErrorMsg.cpp:58
probability_distribution::UNIREAL_DIST_S
const std::string UNIREAL_DIST_S
Definition: ALMaSS_Random.h:105
MapErrorMsg::Warn
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: MapErrorMsg.cpp:69
cfg_UseEasyPop
static CfgBool cfg_UseEasyPop("VOLE_USEEASYPOP", CFG_CUSTOM, false)
NORMAL_DIST
std::normal_distribution< double > NORMAL_DIST
Definition: ALMaSS_Random.cpp:119
TOP_RoeDeer
Definition: PopulationManager.h:66
cfg_Fixed_random_sequence
CfgBool cfg_Fixed_random_sequence
cfg_VoleCatastrophe_mortality
static CfgInt cfg_VoleCatastrophe_mortality("VOLE_CATASTROPHE_M", CFG_CUSTOM, 90)
TOP_foobar
Definition: PopulationManager.h:85
TOP_Predators
Definition: PopulationManager.h:80
GAMMA_DIST
std::gamma_distribution< double > GAMMA_DIST
Definition: ALMaSS_Random.cpp:122
TTypesOfPopulation
TTypesOfPopulation
An enum to hold all the possible types of population handled by a Population_Manager class.
Definition: PopulationManager.h:57
CfgInt::value
int value() const
Definition: Configurator.h:116
g_files
char * g_files[100]
Definition: ALMaSS_CmdLine.cpp:153
Population_Manager_Base::SetStepCounterInADay
void SetStepCounterInADay(int a_counter)
Set step counter in a day.
Definition: PopulationManager.h:603
probability_distribution::probability_distribution
probability_distribution(const std::string &prob_type, std::string prob_params)
Definition: ALMaSS_Random.cpp:126
g_PopulationManagerList
PopulationManagerList g_PopulationManagerList
Definition: ALMaSS_CmdLine.cpp:162
g_Year
int g_Year
Definition: ALMaSS_CmdLine.cpp:158
DISCRETE_DIST
std::discrete_distribution<> DISCRETE_DIST
Definition: ALMaSS_Random.cpp:117
cfg_ProbeName
CfgStr cfg_ProbeName("PROBE_NAME", CFG_CUSTOM, "Probe.res")
probability_distribution::GAMMA_DIST_S
const std::string GAMMA_DIST_S
Definition: ALMaSS_Random.h:128
TOP_Ladybird
Definition: PopulationManager.h:76
probability_distribution::CAUCHY_DIST_T
static const int CAUCHY_DIST_T
Definition: ALMaSS_Random.h:152
g_generator
std::mt19937 g_generator(seed_seq)
g_weather
class Weather * g_weather
Definition: Weather.cpp:49
g_NoProbes
int g_NoProbes
Definition: ALMaSS_CmdLine.cpp:160
CreatePopulationManager
bool CreatePopulationManager()
Definition: ALMaSS_CmdLine.cpp:328
Landscape::DumpVegAreaData
void DumpVegAreaData(int a_day)
Saves the information on vegetation types and areas.
Definition: Landscape.cpp:7804
g_msg
MapErrorMsg * g_msg
Definition: MapErrorMsg.cpp:41
probability_distribution::UNIINT_DIST_S
const std::string UNIINT_DIST_S
Definition: ALMaSS_Random.h:112
probability_distribution::NORMAL_DIST_S
const std::string NORMAL_DIST_S
Definition: ALMaSS_Random.h:98
TOP_Lacewing
Definition: PopulationManager.h:74
GetProbeInput_ini
void GetProbeInput_ini(std::shared_ptr< Population_Manager_Base >, std::string filename)
Definition: ALMaSS_CmdLine.cpp:528
CfgInt
Integer configurator entry class.
Definition: Configurator.h:102
seed_seq
std::seed_seq seed_seq
Definition: ALMaSS_Random.cpp:32
g_NoOfPredProbes
unsigned g_NoOfPredProbes
Definition: ALMaSS_CmdLine.cpp:161
main
int main(int argc, char *argv[])
Definition: ALMaSS_CmdLine.cpp:209
TOP_Vole
Definition: PopulationManager.h:60
g_generator_fixed_fnc
void g_generator_fixed_fnc(const unsigned int s)
Definition: ALMaSS_Random.cpp:43
PopulationManagerList::GetPopulation_smart
std::shared_ptr< Population_Manager_Base > GetPopulation_smart(int a_pt, int a_index=0)
Definition: PopulationManager.h:966
g_ALandscape
Landscape * g_ALandscape
Definition: ALMaSS_CmdLine.cpp:147
EXPONENTIAL_DIST
std::exponential_distribution< double > EXPONENTIAL_DIST
Definition: ALMaSS_Random.cpp:124
ALMaSS_Random.h
Implementing almass specific random number generation and probability distribution classes,...
cfg_tracelevel
static CfgInt cfg_tracelevel("G_TRACELEVEL", CFG_CUSTOM, 4)
UNIREAL_DIST
std::uniform_real_distribution< double > UNIREAL_DIST
Definition: ALMaSS_Random.cpp:120
probability_distribution::BETA_DIST_S
const std::string BETA_DIST_S
Definition: ALMaSS_Random.h:120
g_AlmassMathFuncs
ALMaSS_MathFuncs g_AlmassMathFuncs
Definition: ALMaSS_CmdLine.cpp:163
cfg_DayInMonth
static CfgInt cfg_DayInMonth("PRB_DAYINMONTH", CFG_CUSTOM, 1)
cfg_dumpvegjanfile
CfgStr cfg_dumpvegjanfile
g_time
int g_time
Definition: ALMaSS_CmdLine.cpp:157
CFG_CUSTOM
Definition: Configurator.h:70
g_random_fnc
int g_random_fnc(const int a_range)
Definition: ALMaSS_Random.cpp:74
ReadBatchINI
bool ReadBatchINI(const char *filename)
Definition: ALMaSS_CmdLine.cpp:575
TOP_Oedothorax
Definition: PopulationManager.h:71
g_generator_fixed_fnc
void g_generator_fixed_fnc(unsigned int s=42)
Definition: ALMaSS_Random.cpp:43
Calendar::TickMinute10
bool TickMinute10(void)
Definition: Calendar.cpp:167
probability_distribution::Get
double Get() const
Definition: ALMaSS_Random.cpp:283
cfg_DisturbersNo
static CfgInt cfg_DisturbersNo("DISTURBERS_NO", CFG_CUSTOM, 1, 0, 1000)
CAUCHY_DIST
std::cauchy_distribution< double > CAUCHY_DIST
Definition: ALMaSS_Random.cpp:123
Population_Manager_Base::Run
virtual void Run(int a_NoTSteps)
A place holder for the run function for all population managers, this must be reimplemented in descen...
Definition: PopulationManager.h:575
PopulationManagerList::GetPopulation
Population_Manager_Base * GetPopulation(int a_pt, int a_index=0)
Definition: PopulationManager.h:962
g_letype
class LE_TypeClass * g_letype
Definition: Elements.cpp:806
probability_distribution::DISCRETE_DIST_T
static const int DISCRETE_DIST_T
Definition: ALMaSS_Random.h:146
TOP_OliveMoth
Definition: PopulationManager.h:72
g_torun
int g_torun
Definition: ALMaSS_CmdLine.cpp:152
probability_distribution::EXPONENTIAL_DIST_T
static const int EXPONENTIAL_DIST_T
Definition: ALMaSS_Random.h:153
Landscape::Warn
void Warn(std::string a_msg1, std::string a_msg2)
Wrapper for the g_msg Warn function.
Definition: Landscape.h:2250
PopulationManagerList::GetPopulationManagerNum
int GetPopulationManagerNum(int a_pt)
Returns the number of population manager,.
Definition: PopulationManager.h:957
Landscape::SetThePopManagerList
void SetThePopManagerList(PopulationManagerList *a_ptr)
Set the pointer to the list of active population managers.
Definition: Landscape.h:319
count
Definition: SubPopulation.h:48
g_Predfiles
char * g_Predfiles[100]
Definition: ALMaSS_CmdLine.cpp:154
cfg_VoleCatastrophe_on
static CfgBool cfg_VoleCatastrophe_on("VOLE_CATASTROPHE_ON", CFG_CUSTOM, false)
TOP_Erigone
Definition: PopulationManager.h:61
WARN_BUG
Definition: MapErrorMsg.h:34
cfg_FixedRandomSeed
CfgInt cfg_FixedRandomSeed
g_pest
class Pesticide * g_pest
Definition: Pesticide.cpp:219
g_crops
class PlantGrowthData * g_crops
Definition: Plants.cpp:40
Landscape::SimulationClosingActions
void SimulationClosingActions()
Definition: Landscape.cpp:2934
CreatePesticide
Pesticide * CreatePesticide(Landscape *l)
Definition: Pesticide.cpp:2005