ALMaSS Rabbit ODdox  1.1
The rabbit model description following ODdox protocol
populationmanager.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************************************
3 Copyright (c) 2011, Christopher John Topping, Aarhus University
4 All rights reserved.
5 
6 Redistribution and use in source and binary forms, with or without modification, are permitted provided
7 that the following conditions are met:
8 
9 Redistributions of source code must retain the above copyright notice, this list of conditions and the
10 following disclaimer.
11 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
12 the following disclaimer in the documentation and/or other materials provided with the distribution.
13 
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
15 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
17 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
18 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
19 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
21 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 ********************************************************************************************************
23 */
37 //---------------------------------------------------------------------------
38 
39 #ifndef PopulationManagerH
40  #define PopulationManagerH
41 
42 // Forwards
43 class TAnimal;
44 class ALMaSSGUI;
45 class AlleleFreq;
46 class AOR_Probe;
47 
48 // Start defines
49 typedef char * AnsiString;
50 typedef vector < TAnimal * > TListOfAnimals;
51 // END defines
52 
53 
54 //------------------------------------------------------------------------------
59 {
73  // Above this line are used for menu items and have to be in this order and present
80 };
81 //------------------------------------------------------------------------------
82 
87 struct IntArray100 {
88 public:
89  int n[ 100 ];
90 };
91 
92 //------------------------------------------------------------------------------
93 
98 struct rectangle {
99 public:
100  unsigned m_x1;
101  unsigned m_y1;
102  unsigned m_x2;
103  unsigned m_y2;
104 };
105 //------------------------------------------------------------------------------
106 
111 //------------------------------------------------------------------------------
112 
114 protected:
119 public:
122  return m_CurrentStateNo;
123  }
125  void SetCurrentStateNo(int a_num) {
126  m_CurrentStateNo = a_num;
127  }
129  bool GetStepDone() {
130  return m_StepDone;
131  }
133  void SetStepDone(bool a_bool) {
134  m_StepDone = a_bool;
135  }
137  virtual void BeginStep(void) {}
139  virtual void Step(void) {}
141  virtual void EndStep(void) {}
143  virtual void ReinitialiseObject() {
144  m_StepDone = false;
145  m_CurrentStateNo = 0;
146  }
148  TALMaSSObject();
150  virtual ~TALMaSSObject();
152  void OnArrayBoundsError();
153 #ifdef __CJTDebug_5
154  int AmAlive;
155  int IsAlive() {
156  return AmAlive;
157  }
158  void DEADCODEError();
159 #endif
160 };
161 
162 //------------------------------------------------------------------------------
163 
169 // used to communicate the position of an animal to inquiring objects
170 {
171 public:
172  unsigned m_x;
173  unsigned m_y;
176 };
177 //------------------------------------------------------------------------------
178 
187 {
188 public:
189  int m_Size;
190  int m_Age;
191  unsigned m_Range_x;
192  unsigned m_Range_y;
193  unsigned m_OldRange_x;
194  unsigned m_OldRange_y;
195 };
196 //------------------------------------------------------------------------------
197 
205 class TAnimal : public TALMaSSObject {
206 public:
207  unsigned SupplyFarmOwnerRef();
209  APoint SupplyPoint() { APoint p( m_Location_x, m_Location_y); return p; }
212  }
214  return m_Location_x;
215  }
217  return m_Location_y;
218  }
219  virtual void KillThis()
220  {
221  m_CurrentStateNo = -1;
222  m_StepDone = true;
223  };
224  virtual void CopyMyself() {
225  };
226 protected:
227  int m_Location_x;
238  }
239 public:
240  void SetX( int a_x ) {
241  m_Location_x = a_x;
242  }
243  void SetY( int a_y ) {
244 
245  m_Location_y = a_y;
246 
247  }
248  TAnimal( int x, int y, Landscape * L );
249  // Note that below must be replaced in a descendent class e.g. Skylark_Base
250  virtual void BeginStep( void ) {
251  }
252  virtual void Step( void ) {
253  }
254  virtual void EndStep( void ) {
255  }
257  virtual void ReinitialiseObject(int x, int y, Landscape * L) {
258  m_OurLandscape = L;
259  m_Location_x = x;
260  m_Location_y = y;
262  }
263  virtual int WhatState() {
264  return 0;
265  }
266  virtual void Dying() {
267  KillThis();
268  }
269  void CheckManagement( void );
270  void CheckManagementXY( int x, int y );
271  virtual bool OnFarmEvent( FarmToDo /* event */ ) {
272  return false;
273  }
274 };
275 
276 //------------------------------------------------------------------------------
277 //------------------------------------------------------------------------------
278 
284 {
285 protected:
286  ofstream * m_MyFile;
287  int m_Time;
288  char m_MyFileName[ 255 ];
289 public:
291  unsigned m_ReportInterval; // from 1-10
292  unsigned m_NoAreas; // from 1-10
293  rectangle m_Rect[ 10 ]; // can have up to ten areas
294  unsigned m_NoEleTypes;
295  unsigned m_NoVegTypes;
296  unsigned m_NoFarms;
297  TTypesOfVegetation m_RefVeg[ 25 ]; // up to 25 reference types
298  TTypesOfLandscapeElement m_RefEle[ 25 ]; // up to 25 reference types
299  unsigned m_RefFarms[ 25 ]; // up to 25 reference types
300  // Species Specific Code below:
301  bool m_TargetTypes[ 10 ]; // eggs,nestlings,fledgelings,males,females etc.
302  void FileOutput( int No, int time, int ProbeNo );
303  void FileAppendOutput( int No, int time );
304  probe_data();
305  void SetFile( ofstream * F );
306  ofstream * OpenFile( char * Nme );
307 
309  m_MyFile = new ofstream(m_MyFileName, ios::app);
310  if (!(*m_MyFile).is_open())
311  {
312  g_msg->Warn( WARN_FILE, "PopulationManager::AppendToFile() Unable to open file for append: ", m_MyFileName );
313  exit(1);
314  }
315  return true;
316  }
317  void CloseFile();
318  ~probe_data();
319 };
320 //------------------------------------------------------------------------------
321 //------------------------------------------------------------------------------
322 
324 {
329 protected:
330  double m_K;
331  double m_n;
332  double m_Sum;
333  double m_SumX;
334  double m_SumX2;
335 public:
338  {
339  ClearData();
340  }
342  void add_variable(double x){
343  // This uses the computed shifted data equation.
344  if (m_n == 0) m_K = x;
345  m_n++;
346  m_Sum += x;
347  m_SumX += x - m_K;
348  m_SumX2 += (x - m_K) * (x - m_K);
349  }
351  void remove_variable(double x){
352  m_n--;
353  m_Sum -= x;
354  m_SumX -= (x - m_K);
355  m_SumX2 -= (x - m_K) * (x - m_K);
356  }
358  double get_N(){
359  return m_n;
360  }
362  double get_Total(){
363  return m_Sum;
364  }
366  double get_meanvalue(){
367  if (m_n == 0) return -1;
368  return m_K + m_SumX / m_n;
369  }
371  double get_varianceP(){
372  if (m_n < 2)
373  {
374  return -1; // Ilegal n value, but don't want to exit
375  }
376  return (m_SumX2 - (m_SumX*m_SumX) / m_n) / (m_n);
377  }
379  double get_varianceS(){
380  if (m_n < 2)
381  {
382  return -1; // Ilegal n value, but don't want to exit
383  }
384  return (m_SumX2 - (m_SumX*m_SumX) / m_n) / (m_n - 1);
385  }
387  double get_SD(){
388  if (m_n < 2)
389  {
390  return -1; // Ilegal n value, but don't want to exit
391  }
392  return (sqrt(get_varianceS()));
393  }
395  double get_SE(){
396  if (m_n < 2)
397  {
398  return -1; // Ilegal n value, but don't want to exit
399  }
400  return (sqrt(get_varianceS()/get_N()));
401  }
403  void ClearData()
404  {
405  m_K = 0;
406  m_n = 0;
407  m_Sum = 0;
408  m_SumX = 0;
409  m_SumX2 = 0;
410  }
411 };
412 //------------------------------------------------------------------------------
413 
414 
415 
416 //------------------------------------------------------------------------------
425 public:
426  // Methods
428  virtual ~Population_Manager(void);
429 
430 
431  void SetNoProbes(int a_pn) { m_NoProbes = a_pn; }
433  unsigned GetLiveArraySize(int a_listindex) {
434  return m_LiveArraySize[a_listindex];
435  }
437  void IncLiveArraySize(int a_listindex) {
438  m_LiveArraySize[a_listindex]++;
439  }
440  virtual void Catastrophe(int /* a_mort */) {
441  }
442  unsigned int FarmAnimalCensus(unsigned int a_farm, unsigned int a_typeofanimal);
443  char* SpeciesSpecificReporting(int a_species, int a_time);
444  char* ProbeReport(int a_time);
445  char* ProbeReportTimed(int a_time);
446  void ImpactProbeReport(int a_Time);
447  bool BeginningOfMonth();
448  void LOG(const char* fname);
450  return m_StepSize;
451  }
452  int SupplySimW() {
453  return SimW;
454  }
455  int SupplySimH() {
456  return SimH;
457  }
458  virtual void Run(int NoTSteps);
459  virtual float Probe(int ListIndex, probe_data * p_TheProbe);
460  virtual void ImpactedProbe();
462  return m_ListNameLength;
463  }
465  TAnimal* SupplyAnimalPtr(int a_index, int a_animal) {
466  return TheArray[a_index][a_animal];
467  }
468  unsigned SupplyListIndexSize() {
469  return (unsigned)TheArray.size();
470  }
471  unsigned SupplyListSize(unsigned listindex) {
472  return (unsigned)TheArray[listindex].size();
473  }
475  bool CheckXY(int l, int i);
476 
477  //---------------------------------------------------------------------------
478  const char* SupplyListName(int i) {
479  return m_ListNames[i];
480  }
481  bool IsLast(unsigned listindex) {
482  if (TheArray[listindex].size() > 1) return false; else
483  return true;
484  }
490  int SupplyState(unsigned listindex, unsigned j) {
491  return TheArray[listindex][j]->WhatState();
492  }
493  virtual void SupplyLocXY(unsigned listindex, unsigned j, int & x, int & y) {
494  x = TheArray[listindex][j]->Supply_m_Location_x();
495  y = TheArray[listindex][j]->Supply_m_Location_y();
496  }
497  const char* SupplyStateNames(int i) {
498  return StateNames[i];
499  }
501  return StateNamesLength;
502  }
503  virtual void DisplayLocations();
504  int ProbeFileInput(char * p_Filename, int p_ProbeNo);
505  // Attributes
506 #ifdef __ALMASS_VISUAL
507  ALMaSSGUI * m_MainForm; // Need to use this when drawing to main form
508 #endif
509  int IndexArrayX[5][10000];
511  int SimH, SimW;
512  unsigned SimHH, SimWH;
513  char m_SimulationName[255];
514  bool ProbesSet; // used to show when probes are needed to be set
516  TAnimal * FindClosest(int x, int y, unsigned Type);
517  // Output arrays
518 #ifndef __UNIX__
519 // unsigned Counts[ 10 ] [ 100 ];
520 #endif
521 protected:
522  // Attributes
523  // Holds the number of live animals repsented in each element of vector of vectors TheArray
524  vector<unsigned> m_LiveArraySize;
526  AOR_Probe* m_AOR_Probe;
530  //FILE* m_FledgelingFile;
531  const char* StateNames[100];
534  vector < TListOfAnimals > TheArray; // Creates an empty array of arrays
536  /* IntArray100 StateList; */
537  const char* m_ListNames[32];
539  FILE * TestFile;
540  FILE * TestFile2;
541  // dww. Hardcoded 12. Fix.
542  unsigned BeforeStepActions[12];
545  // Methods
547  virtual bool StepFinished();
548  virtual void DoFirst();
549  virtual void DoBefore();
550  virtual void DoAfter();
551  virtual void DoAlmostLast();
552  virtual void DoLast();
554  void EmptyTheArray();
555  void SortX(unsigned Type);
556  void SortXIndex(unsigned Type);
557  void SortY(unsigned Type);
558  void SortState(unsigned Type);
559  void SortStateR(unsigned Type);
560  unsigned PartitionLiveDead(unsigned Type);
561  void Shuffle_or_Sort(unsigned Type);
562  void Shuffle(unsigned Type);
563  virtual void Catastrophe();
564 public:
565  // Grid related functions
566  bool OpenTheRipleysOutputProbe(string a_NWordFilename);
567  void OpenTheAOROutputProbe(string a_AORFilename);
569  bool OpenTheReallyBigProbe();
570  virtual void TheAOROutputProbe();
571  virtual void TheRipleysOutputProbe(FILE* a_prb);
572  virtual void TheReallyBigOutputProbe();
574  virtual void CloseTheRipleysOutputProbe();
575  virtual void CloseTheReallyBigOutputProbe();
578  int GetSeasonNumber() { return m_SeasonNumber; }
579 protected:
581  ofstream* AOROutputPrb;
596 
597  long int lamdagrid[2][257][257]; // THIS ONLY WORKS UP TO 10x10 KM !!!!
598 public:
599  void LamdaDeath(int x, int y) {
600  // inlined for speed
601  lamdagrid[1][x / __lgridsize][y / __lgridsize]++;
602  }
603  void LamdaBirth(int x, int y) {
604  lamdagrid[0][x / __lgridsize][y / __lgridsize]++;
605  }
606  void LamdaBirth(int x, int y, int z) {
607  lamdagrid[0][x / __lgridsize][y / __lgridsize] += z;
608  }
609  void LamdaClear() {
610  for (int i = 0; i < 257; i++) {
611  for (int j = 0; j < 257; j++) {
612  lamdagrid[0][i][j] = 0;
613  lamdagrid[1][i][j] = 0;
614  }
615  }
616  }
617  void LamdaDumpOutput();
618  // end grid stuff
619 public: // Special ones for compatability to descended managers
620  virtual int SupplyPegPosx(int) {
621  return 0;
622  }
623  virtual int SupplyPegPosy(int) {
624  return 0;
625  }
626  virtual int SupplyCovPosx(int) {
627  return 0;
628  }
629  virtual int SupplyCovPosy(int) {
630  return 0;
631  }
632  virtual bool OpenTheFledgelingProbe() {
633  return false;
634  }
635  virtual bool OpenTheBreedingPairsProbe() {
636  return false;
637  }
639  return false;
640  }
641  virtual void BreedingPairsOutput(int) {
642  }
643  virtual int TheBreedingFemalesProbe(int) {
644  return 0;
645  }
646  virtual int TheFledgelingProbe() {
647  return 0;
648  }
649  virtual void BreedingSuccessProbeOutput(double, int, int, int, int, int, int, int) {
650  }
651  virtual int TheBreedingSuccessProbe(int &, int &, int &, int &, int &, int &) {
652  return 0;
653  }
654  virtual void FledgelingProbeOutput(int, int) {
655  }
656  virtual void TheGeneticProbe(unsigned, int, unsigned &) {
657  }
658  virtual void GeneticsResultsOutput(FILE *, unsigned) {
659  }
660 };
661 //------------------------------------------------------------------------------
662 //------------------------------------------------------------------------------
663 
669 {
670 public:
671  PopulationManagerList() { for (int i=0; i< TOP_foobar; i++) m_populationlist[i] = NULL; }
674 protected:
676 };
677 //------------------------------------------------------------------------------
678 
679 
680 #endif
681 
682 
Population_Manager::TestFile2
FILE * TestFile2
Definition: populationmanager.h:540
probe_data::m_TargetTypes
bool m_TargetTypes[10]
Definition: populationmanager.h:301
TOP_Newt
Definition: populationmanager.h:69
Population_Manager::SupplyStateNames
const char * SupplyStateNames(int i)
Definition: populationmanager.h:497
Population_Manager::EmptyTheArray
void EmptyTheArray()
Removes all objects from the TheArray by deleting them and clearing TheArray.
Definition: PopulationManager.cpp:962
Population_Manager::SpeciesSpecificReporting
char * SpeciesSpecificReporting(int a_species, int a_time)
Definition: PopulationManager.cpp:1121
TAnimal::KillThis
virtual void KillThis()
Definition: populationmanager.h:219
TALMaSSObject::SetStepDone
void SetStepDone(bool a_bool)
Sets the step done indicator flag.
Definition: populationmanager.h:133
SimpleStatistics::get_N
double get_N()
Returns the number of values.
Definition: populationmanager.h:358
TOP_MarshFritillary
Definition: populationmanager.h:74
Population_Manager::ProbeFileInput
int ProbeFileInput(char *p_Filename, int p_ProbeNo)
Definition: PopulationManager.cpp:574
Population_Manager::m_catastrophestartyear
int m_catastrophestartyear
Definition: populationmanager.h:532
Population_Manager::DoLast
virtual void DoLast()
Definition: PopulationManager.cpp:530
Population_Manager::RipleysOutputPrb
FILE * RipleysOutputPrb
Definition: populationmanager.h:582
SimpleStatistics::get_SD
double get_SD()
Returns the sample standard deviation.
Definition: populationmanager.h:387
TOP_Goose
Definition: populationmanager.h:66
Population_Manager::RipleysOutputPrb9
FILE * RipleysOutputPrb9
Definition: populationmanager.h:591
Population_Manager::CloseTheMonthlyRipleysOutputProbe
void CloseTheMonthlyRipleysOutputProbe()
Definition: PopulationManager.cpp:885
SimpleStatistics
Definition: populationmanager.h:323
TOP_Rabbit
Definition: populationmanager.h:68
probe_data::m_NoAreas
unsigned m_NoAreas
Definition: populationmanager.h:292
Population_Manager::Shuffle_or_Sort
void Shuffle_or_Sort(unsigned Type)
Definition: PopulationManager.cpp:1073
probe_data::probe_data
probe_data()
Definition: PopulationManager.cpp:1479
probe_data::m_RefFarms
unsigned m_RefFarms[25]
Definition: populationmanager.h:299
SimpleStatistics::m_Sum
double m_Sum
Definition: populationmanager.h:332
Population_Manager::TheArray
vector< TListOfAnimals > TheArray
Definition: populationmanager.h:534
Population_Manager::StateNamesLength
unsigned StateNamesLength
Definition: populationmanager.h:535
Population_Manager::m_population_type
TTypesOfPopulation m_population_type
Definition: populationmanager.h:580
TALMaSSObject::~TALMaSSObject
virtual ~TALMaSSObject()
The destructor for TALMaSSObject.
Definition: PopulationManager.cpp:1393
Population_Manager::Population_Manager
Population_Manager(Landscape *L)
Definition: PopulationManager.cpp:221
Population_Manager::Probe
virtual float Probe(int ListIndex, probe_data *p_TheProbe)
Definition: PopulationManager.cpp:680
Population_Manager::Run
virtual void Run(int NoTSteps)
Definition: PopulationManager.cpp:337
IntArray100
A struct of 100 ints.
Definition: populationmanager.h:87
Population_Manager::TheBreedingFemalesProbe
virtual int TheBreedingFemalesProbe(int)
Definition: populationmanager.h:643
PopulationManagerList
A small class to hold the pointers to active population managers.
Definition: populationmanager.h:668
TTypesOfPopulation
TTypesOfPopulation
An enum to hold all the possible types of population handled by a Population_Manager class.
Definition: populationmanager.h:58
TALMaSSObject
The base class of all ALMaSS objects requiring Step code.
Definition: populationmanager.h:113
probe_data::OpenFile
ofstream * OpenFile(char *Nme)
Definition: PopulationManager.cpp:1490
probe_data::m_Rect
rectangle m_Rect[10]
Definition: populationmanager.h:293
Population_Manager::TheRipleysOutputProbe
virtual void TheRipleysOutputProbe(FILE *a_prb)
Definition: PopulationManager.cpp:918
Population_Manager::AOROutputPrb
ofstream * AOROutputPrb
Definition: populationmanager.h:581
Population_Manager::ReallyBigOutputPrb
FILE * ReallyBigOutputPrb
Definition: populationmanager.h:595
Population_Manager::SimWH
unsigned SimWH
Definition: populationmanager.h:512
probe_data::m_MyFile
ofstream * m_MyFile
Definition: populationmanager.h:286
Population_Manager::SupplyCovPosy
virtual int SupplyCovPosy(int)
Definition: populationmanager.h:629
TAnimal::m_OurLandscape
Landscape * m_OurLandscape
Definition: populationmanager.h:229
probe_data::SetFile
void SetFile(ofstream *F)
Definition: PopulationManager.cpp:1504
Population_Manager::FindClosest
TAnimal * FindClosest(int x, int y, unsigned Type)
Definition: PopulationManager.cpp:937
probe_data::CloseFile
void CloseFile()
Definition: PopulationManager.cpp:135
Population_Manager::TheProbe
probe_data * TheProbe[100]
Definition: populationmanager.h:510
TOP_Partridge
Definition: populationmanager.h:65
TOP_Hunters
Definition: populationmanager.h:77
RoeDeerInfo::m_OldRange_x
unsigned m_OldRange_x
Definition: populationmanager.h:193
Population_Manager::SupplyCovPosx
virtual int SupplyCovPosx(int)
Definition: populationmanager.h:626
Population_Manager::BreedingSuccessProbeOutput
virtual void BreedingSuccessProbeOutput(double, int, int, int, int, int, int, int)
Definition: populationmanager.h:649
Population_Manager::TestFile
FILE * TestFile
Definition: populationmanager.h:539
Population_Manager::OpenTheRipleysOutputProbe
bool OpenTheRipleysOutputProbe(string a_NWordFilename)
Definition: PopulationManager.cpp:757
Population_Manager::CloseTheRipleysOutputProbe
virtual void CloseTheRipleysOutputProbe()
Definition: PopulationManager.cpp:874
SimpleStatistics::m_K
double m_K
Definition: populationmanager.h:330
Population_Manager::m_StepSize
int m_StepSize
Definition: populationmanager.h:533
Population_Manager::m_SimulationName
char m_SimulationName[255]
Definition: populationmanager.h:513
AnimalPosition::m_x
unsigned m_x
Definition: populationmanager.h:172
Population_Manager::SimHH
unsigned SimHH
Definition: populationmanager.h:512
rectangle::m_y1
unsigned m_y1
Definition: populationmanager.h:101
Population_Manager::GetLiveArraySize
unsigned GetLiveArraySize(int a_listindex)
Gets the number of 'live' objects for a list index in the TheArray.
Definition: populationmanager.h:433
Population_Manager::CheckXY
bool CheckXY(int l, int i)
Debug method to test for out of bounds coordinates.
Definition: PopulationManager.cpp:1518
Population_Manager::SupplyListName
const char * SupplyListName(int i)
Definition: populationmanager.h:478
TOP_ApisRAM
Definition: populationmanager.h:71
SimpleStatistics::get_Total
double get_Total()
Returns the mean.
Definition: populationmanager.h:362
TAnimal::Supply_m_Location_x
int Supply_m_Location_x()
Definition: populationmanager.h:213
Population_Manager::m_AlleleFreqsFile
FILE * m_AlleleFreqsFile
Definition: populationmanager.h:528
Population_Manager::SupplyStepSize
int SupplyStepSize()
Definition: populationmanager.h:449
TOP_Vole
Definition: populationmanager.h:61
TAnimal::Dying
virtual void Dying()
Definition: populationmanager.h:266
probe_data::m_NoVegTypes
unsigned m_NoVegTypes
Definition: populationmanager.h:295
probe_data::~probe_data
~probe_data()
Definition: PopulationManager.cpp:1513
Population_Manager::SortXIndex
void SortXIndex(unsigned Type)
Definition: PopulationManager.cpp:1027
Population_Manager::IndexArrayX
int IndexArrayX[5][10000]
Definition: populationmanager.h:509
Population_Manager::m_GeneticsFile
FILE * m_GeneticsFile
Definition: populationmanager.h:527
probe_data::m_MyFileName
char m_MyFileName[255]
Definition: populationmanager.h:288
Population_Manager::ImpactProbeReport
void ImpactProbeReport(int a_Time)
Definition: PopulationManager.cpp:1321
rectangle::m_x2
unsigned m_x2
Definition: populationmanager.h:102
Population_Manager::SimW
int SimW
Definition: populationmanager.h:511
Population_Manager::OpenTheFledgelingProbe
virtual bool OpenTheFledgelingProbe()
Definition: populationmanager.h:632
SimpleStatistics::m_SumX2
double m_SumX2
Definition: populationmanager.h:334
Population_Manager::SortState
void SortState(unsigned Type)
Definition: PopulationManager.cpp:999
TAnimal::SupplyPolygonRef
int SupplyPolygonRef()
Definition: populationmanager.h:210
g_msg
class MapErrorMsg * g_msg
Definition: maperrormsg.cpp:41
Population_Manager::RipleysOutputPrb6
FILE * RipleysOutputPrb6
Definition: populationmanager.h:588
probe_data::OpenForAppendToFile
bool OpenForAppendToFile()
Definition: populationmanager.h:308
TAnimal::TAnimal
TAnimal(int x, int y, Landscape *L)
Definition: PopulationManager.cpp:1367
Population_Manager::GetSeasonNumber
int GetSeasonNumber()
Get the season number.
Definition: populationmanager.h:578
Population_Manager::m_AOR_Probe
AOR_Probe * m_AOR_Probe
Definition: populationmanager.h:526
Population_Manager::SupplyAnimalPtr
TAnimal * SupplyAnimalPtr(int a_index, int a_animal)
Returns the pointer indexed by a_index and a_animal. Note NO RANGE CHECK.
Definition: populationmanager.h:465
TAnimal::SupplyPoint
APoint SupplyPoint()
Definition: populationmanager.h:209
probe_data::m_ReportInterval
unsigned m_ReportInterval
Definition: populationmanager.h:291
TALMaSSObject::EndStep
virtual void EndStep(void)
EndStep behaviour - must be implemented in descendent classes.
Definition: populationmanager.h:141
TOP_Osmia
Definition: populationmanager.h:70
TOP_foobar
Definition: populationmanager.h:79
probe_data::FileOutput
void FileOutput(int No, int time, int ProbeNo)
Definition: PopulationManager.cpp:1447
probe_data::m_RefEle
TTypesOfLandscapeElement m_RefEle[25]
Definition: populationmanager.h:298
Landscape
The landscape class containing all environmental and topographical data.
Definition: landscape.h:112
Population_Manager::LamdaClear
void LamdaClear()
Definition: populationmanager.h:609
Population_Manager::LamdaBirth
void LamdaBirth(int x, int y)
Definition: populationmanager.h:603
SimpleStatistics::get_SE
double get_SE()
Returns the sample standard error.
Definition: populationmanager.h:395
TALMaSSObject::Step
virtual void Step(void)
Step behaviour - must be implemented in descendent classes.
Definition: populationmanager.h:139
TAnimal::SetX
void SetX(int a_x)
Definition: populationmanager.h:240
probe_data::FileAppendOutput
void FileAppendOutput(int No, int time)
Definition: PopulationManager.cpp:1462
Population_Manager::RipleysOutputPrb8
FILE * RipleysOutputPrb8
Definition: populationmanager.h:590
TOP_Predators
Definition: populationmanager.h:76
RoeDeerInfo
Part of the basic ALMaSS system (obselete)
Definition: populationmanager.h:186
TTypesOfVegetation
TTypesOfVegetation
Definition: tov_declaration.h:30
rectangle
A struct defining two x,y coordinate sets of positive co-ords only.
Definition: populationmanager.h:98
probe_data::m_RefVeg
TTypesOfVegetation m_RefVeg[25]
Definition: populationmanager.h:297
Landscape::SupplySimAreaHeight
int SupplySimAreaHeight(void)
Definition: landscape.h:1637
Landscape::SupplySimAreaWidth
int SupplySimAreaWidth(void)
Definition: landscape.h:1632
TAnimal::m_Location_y
int m_Location_y
Definition: populationmanager.h:228
Population_Manager::TheReallyBigOutputProbe
virtual void TheReallyBigOutputProbe()
Definition: PopulationManager.cpp:913
Population_Manager::DoBefore
virtual void DoBefore()
Definition: PopulationManager.cpp:328
Population_Manager::RipleysOutputPrb10
FILE * RipleysOutputPrb10
Definition: populationmanager.h:592
Population_Manager::LamdaBirth
void LamdaBirth(int x, int y, int z)
Definition: populationmanager.h:606
Population_Manager::SupplyLocXY
virtual void SupplyLocXY(unsigned listindex, unsigned j, int &x, int &y)
Definition: populationmanager.h:493
TAnimal::OnFarmEvent
virtual bool OnFarmEvent(FarmToDo)
Definition: populationmanager.h:271
Population_Manager::SupplyListIndexSize
unsigned SupplyListIndexSize()
Definition: populationmanager.h:468
Population_Manager::LamdaDumpOutput
void LamdaDumpOutput()
Definition: PopulationManager.cpp:657
TAnimal
The base class for all ALMaSS animal classes.
Definition: populationmanager.h:205
Population_Manager::m_SeasonNumber
int m_SeasonNumber
Holds the season number. Used when running goose and hunter sims.
Definition: populationmanager.h:544
AnsiString
char * AnsiString
Definition: populationmanager.h:46
AnimalPosition
A class defining an animals position.
Definition: populationmanager.h:168
Population_Manager::BeforeStepActions
unsigned BeforeStepActions[12]
Definition: populationmanager.h:542
PopulationManagerList::PopulationManagerList
PopulationManagerList()
Definition: populationmanager.h:671
TAnimal::ReinitialiseObject
virtual void ReinitialiseObject(int x, int y, Landscape *L)
Used to re-use an object - must be implemented in descendent classes.
Definition: populationmanager.h:257
Population_Manager::SupplySimW
int SupplySimW()
Definition: populationmanager.h:452
TAnimal::SetY
void SetY(int a_y)
Definition: populationmanager.h:243
TAnimal::EndStep
virtual void EndStep(void)
EndStep behaviour - must be implemented in descendent classes.
Definition: populationmanager.h:254
Population_Manager::ImpactedProbe
virtual void ImpactedProbe()
Definition: PopulationManager.cpp:672
MapErrorMsg::Warn
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: maperrormsg.cpp:59
TALMaSSObject::SetCurrentStateNo
void SetCurrentStateNo(int a_num)
Sets the current state number.
Definition: populationmanager.h:125
Population_Manager::SupplyState
int SupplyState(unsigned listindex, unsigned j)
Definition: populationmanager.h:490
probe_data
Data structure to hold & output probe data probe data is designed to be used to return the number of ...
Definition: populationmanager.h:283
Population_Manager
Base class for all population managers.
Definition: populationmanager.h:424
SimpleStatistics::SimpleStatistics
SimpleStatistics()
SimpleStatistics constructor.
Definition: populationmanager.h:337
RoeDeerInfo::m_Size
int m_Size
Definition: populationmanager.h:189
Population_Manager::RipleysOutputPrb11
FILE * RipleysOutputPrb11
Definition: populationmanager.h:593
Population_Manager::lamdagrid
long int lamdagrid[2][257][257]
Definition: populationmanager.h:597
TALMaSSObject::m_StepDone
bool m_StepDone
Indicates whether the iterative step code is done for this timestep.
Definition: populationmanager.h:118
TAnimal::CheckManagementXY
void CheckManagementXY(int x, int y)
Definition: PopulationManager.cpp:1417
Population_Manager::SupplyPegPosx
virtual int SupplyPegPosx(int)
Definition: populationmanager.h:620
SimpleStatistics::get_varianceS
double get_varianceS()
Returns the sample variance.
Definition: populationmanager.h:379
rectangle::m_y2
unsigned m_y2
Definition: populationmanager.h:103
TAnimal::SupplyPosition
AnimalPosition SupplyPosition()
Definition: PopulationManager.cpp:1345
SimpleStatistics::get_varianceP
double get_varianceP()
Returns the population variance.
Definition: populationmanager.h:371
Population_Manager::TheFledgelingProbe
virtual int TheFledgelingProbe()
Definition: populationmanager.h:646
TAnimal::BeginStep
virtual void BeginStep(void)
BeingStep behaviour - must be implemented in descendent classes.
Definition: populationmanager.h:250
SimpleStatistics::get_meanvalue
double get_meanvalue()
Returns the mean.
Definition: populationmanager.h:366
AnimalPosition::m_EleType
TTypesOfLandscapeElement m_EleType
Definition: populationmanager.h:174
Population_Manager::SupplyStateNamesLength
unsigned SupplyStateNamesLength()
Definition: populationmanager.h:500
SimpleStatistics::m_n
double m_n
Definition: populationmanager.h:331
PopulationManagerList::SetPopulation
void SetPopulation(Population_Manager *p_pm, TTypesOfPopulation a_pt)
Definition: populationmanager.h:672
Population_Manager::ProbeReportTimed
char * ProbeReportTimed(int a_time)
Definition: PopulationManager.cpp:1300
Population_Manager::RipleysOutputPrb3
FILE * RipleysOutputPrb3
Definition: populationmanager.h:585
AnimalPosition::m_y
unsigned m_y
Definition: populationmanager.h:173
Population_Manager::SupplyPegPosy
virtual int SupplyPegPosy(int)
Definition: populationmanager.h:623
TOP_Spider
Definition: populationmanager.h:62
Population_Manager::DoFirst
virtual void DoFirst()
Definition: PopulationManager.cpp:320
SimpleStatistics::m_SumX
double m_SumX
Definition: populationmanager.h:333
Population_Manager::RipleysOutputPrb4
FILE * RipleysOutputPrb4
Definition: populationmanager.h:586
Population_Manager::SupplySimH
int SupplySimH()
Definition: populationmanager.h:455
TOP_LaceWing
Definition: populationmanager.h:78
SimpleStatistics::remove_variable
void remove_variable(double x)
Remove a value.
Definition: populationmanager.h:351
TAnimal::CopyMyself
virtual void CopyMyself()
Definition: populationmanager.h:224
Population_Manager::SupplyListNameLength
int SupplyListNameLength()
Definition: populationmanager.h:461
Population_Manager::StateNames
const char * StateNames[100]
Definition: populationmanager.h:531
Population_Manager::FarmAnimalCensus
unsigned int FarmAnimalCensus(unsigned int a_farm, unsigned int a_typeofanimal)
Definition: PopulationManager.cpp:1261
Population_Manager::TheBreedingSuccessProbe
virtual int TheBreedingSuccessProbe(int &, int &, int &, int &, int &, int &)
Definition: populationmanager.h:651
TOP_OliveMoth
Definition: populationmanager.h:72
RoeDeerInfo::m_Range_y
unsigned m_Range_y
Definition: populationmanager.h:192
probe_data::m_FileRecord
bool m_FileRecord
Definition: populationmanager.h:290
Population_Manager::m_TheLandscape
Landscape * m_TheLandscape
Definition: populationmanager.h:515
Population_Manager::GetPopulationType
TTypesOfPopulation GetPopulationType()
Definition: populationmanager.h:576
Population_Manager::FledgelingProbeOutput
virtual void FledgelingProbeOutput(int, int)
Definition: populationmanager.h:654
Population_Manager::ProbeReport
char * ProbeReport(int a_time)
Definition: PopulationManager.cpp:1273
Population_Manager::OpenTheReallyBigProbe
bool OpenTheReallyBigProbe()
Definition: PopulationManager.cpp:859
Population_Manager::DisplayLocations
virtual void DisplayLocations()
Definition: PopulationManager.cpp:560
Population_Manager::OpenTheMonthlyRipleysOutputProbe
bool OpenTheMonthlyRipleysOutputProbe()
Definition: PopulationManager.cpp:778
TAnimal::SupplyFarmOwnerRef
unsigned SupplyFarmOwnerRef()
Definition: PopulationManager.cpp:1359
TOP_Skylark
Definition: populationmanager.h:60
PopulationManagerList::m_populationlist
Population_Manager * m_populationlist[TOP_foobar]
Definition: populationmanager.h:675
Population_Manager::RipleysOutputPrb12
FILE * RipleysOutputPrb12
Definition: populationmanager.h:594
Population_Manager::m_EasyPopRes
FILE * m_EasyPopRes
Definition: populationmanager.h:529
Population_Manager::GeneticsResultsOutput
virtual void GeneticsResultsOutput(FILE *, unsigned)
Definition: populationmanager.h:658
TALMaSSObject::OnArrayBoundsError
void OnArrayBoundsError()
Used for debugging only, tests basic object properties.
Definition: PopulationManager.cpp:1427
TOP_Beetle
Definition: populationmanager.h:63
Population_Manager::RipleysOutputPrb1
FILE * RipleysOutputPrb1
Definition: populationmanager.h:583
Population_Manager::TheGeneticProbe
virtual void TheGeneticProbe(unsigned, int, unsigned &)
Definition: populationmanager.h:656
Population_Manager::SimH
int SimH
Definition: populationmanager.h:511
WARN_FILE
Definition: maperrormsg.h:37
TListOfAnimals
vector< TAnimal * > TListOfAnimals
Definition: populationmanager.h:50
Population_Manager::BreedingPairsOutput
virtual void BreedingPairsOutput(int)
Definition: populationmanager.h:641
rectangle::m_x1
unsigned m_x1
Definition: populationmanager.h:100
Population_Manager::m_ListNameLength
unsigned m_ListNameLength
Definition: populationmanager.h:538
Population_Manager::RipleysOutputPrb5
FILE * RipleysOutputPrb5
Definition: populationmanager.h:587
RoeDeerInfo::m_Age
int m_Age
Definition: populationmanager.h:190
TALMaSSObject::GetCurrentStateNo
int GetCurrentStateNo()
Returns the current state number.
Definition: populationmanager.h:121
Population_Manager::SortStateR
void SortStateR(unsigned Type)
Definition: PopulationManager.cpp:1008
TALMaSSObject::BeginStep
virtual void BeginStep(void)
BeingStep behaviour - must be implemented in descendent classes.
Definition: populationmanager.h:137
Population_Manager::BeginningOfMonth
bool BeginningOfMonth()
Definition: PopulationManager.cpp:1102
Population_Manager::SortX
void SortX(unsigned Type)
Definition: PopulationManager.cpp:979
TTypesOfLandscapeElement
TTypesOfLandscapeElement
Definition: tole_declaration.h:36
TAnimal::CheckManagement
void CheckManagement(void)
Definition: PopulationManager.cpp:1404
probe_data::m_NoEleTypes
unsigned m_NoEleTypes
Definition: populationmanager.h:294
TOP_Hare
Definition: populationmanager.h:64
TAnimal::Supply_m_Location_y
int Supply_m_Location_y()
Definition: populationmanager.h:216
probe_data::m_NoFarms
unsigned m_NoFarms
Definition: populationmanager.h:296
Population_Manager::PartitionLiveDead
unsigned PartitionLiveDead(unsigned Type)
Definition: PopulationManager.cpp:1015
Population_Manager::Catastrophe
virtual void Catastrophe(int)
Definition: populationmanager.h:440
Population_Manager::RipleysOutputPrb2
FILE * RipleysOutputPrb2
Definition: populationmanager.h:584
Population_Manager::m_NoProbes
int m_NoProbes
Definition: populationmanager.h:525
Population_Manager::SupplyListSize
unsigned SupplyListSize(unsigned listindex)
Definition: populationmanager.h:471
RoeDeerInfo::m_OldRange_y
unsigned m_OldRange_y
Definition: populationmanager.h:194
Population_Manager::RipleysOutputPrb7
FILE * RipleysOutputPrb7
Definition: populationmanager.h:589
SimpleStatistics::add_variable
void add_variable(double x)
Add a value.
Definition: populationmanager.h:342
Population_Manager::~Population_Manager
virtual ~Population_Manager(void)
Definition: PopulationManager.cpp:266
Population_Manager::StepFinished
virtual bool StepFinished()
Overrides the population manager StepFinished - there is no chance that hunters do not finish a step ...
Definition: PopulationManager.cpp:498
TOP_Dormouse
Definition: populationmanager.h:75
TAnimal::CorrectWrapRound
void CorrectWrapRound()
Corrects wrap around co-ordinate problems.
Definition: populationmanager.h:231
Population_Manager::ProbesSet
bool ProbesSet
Definition: populationmanager.h:514
Population_Manager::DoAlmostLast
virtual void DoAlmostLast()
Definition: PopulationManager.cpp:522
Population_Manager::CloseTheReallyBigOutputProbe
virtual void CloseTheReallyBigOutputProbe()
Definition: PopulationManager.cpp:904
TALMaSSObject::ReinitialiseObject
virtual void ReinitialiseObject()
Used to re-use an object - must be implemented in descendent classes.
Definition: populationmanager.h:143
Population_Manager::Shuffle
void Shuffle(unsigned Type)
Definition: PopulationManager.cpp:1055
probe_data::m_Time
int m_Time
Definition: populationmanager.h:287
FarmToDo
FarmToDo
Definition: treatment.h:31
IntArray100::n
int n[100]
Definition: populationmanager.h:89
TALMaSSObject::m_CurrentStateNo
int m_CurrentStateNo
The basic state number for all objects - '-1' indicates death.
Definition: populationmanager.h:116
TOP_RoeDeer
Definition: populationmanager.h:67
TAnimal::Step
virtual void Step(void)
Step behaviour - must be implemented in descendent classes.
Definition: populationmanager.h:252
Population_Manager::OpenTheBreedingSuccessProbe
virtual bool OpenTheBreedingSuccessProbe()
Definition: populationmanager.h:638
Population_Manager::OpenTheAOROutputProbe
void OpenTheAOROutputProbe(string a_AORFilename)
Definition: PopulationManager.cpp:771
Population_Manager::m_ListNames
const char * m_ListNames[32]
Definition: populationmanager.h:537
Population_Manager::SetNoProbes
void SetNoProbes(int a_pn)
Definition: populationmanager.h:431
Population_Manager::OpenTheBreedingPairsProbe
virtual bool OpenTheBreedingPairsProbe()
Definition: populationmanager.h:635
RoeDeerInfo::m_Range_x
unsigned m_Range_x
Definition: populationmanager.h:191
TAnimal::m_Location_x
int m_Location_x
Definition: populationmanager.h:225
Population_Manager::LOG
void LOG(const char *fname)
Definition: PopulationManager.cpp:294
Population_Manager::TheAOROutputProbe
virtual void TheAOROutputProbe()
Definition: PopulationManager.cpp:924
Landscape::SupplyPolyRef
int SupplyPolyRef(int a_x, int a_y)
Definition: landscape.h:1488
TALMaSSObject::GetStepDone
bool GetStepDone()
Returns the step done indicator flag.
Definition: populationmanager.h:129
TAnimal::WhatState
virtual int WhatState()
Definition: populationmanager.h:263
Population_Manager::SortY
void SortY(unsigned Type)
Definition: PopulationManager.cpp:989
SimpleStatistics::ClearData
void ClearData()
Clears the data.
Definition: populationmanager.h:403
PopulationManagerList::GetPopulation
Population_Manager * GetPopulation(TTypesOfPopulation a_pt)
Definition: populationmanager.h:673
TALMaSSObject::TALMaSSObject
TALMaSSObject()
The constructor for TALMaSSObject.
Definition: PopulationManager.cpp:1379
Population_Manager::m_LiveArraySize
vector< unsigned > m_LiveArraySize
Definition: populationmanager.h:524
Population_Manager::LamdaDeath
void LamdaDeath(int x, int y)
Definition: populationmanager.h:599
Population_Manager::Catastrophe
virtual void Catastrophe()
Definition: PopulationManager.cpp:1109
Population_Manager::IsLast
bool IsLast(unsigned listindex)
Definition: populationmanager.h:481
Population_Manager::DoAfter
virtual void DoAfter()
Definition: PopulationManager.cpp:513
AnimalPosition::m_VegType
TTypesOfVegetation m_VegType
Definition: populationmanager.h:175
Population_Manager::IncLiveArraySize
void IncLiveArraySize(int a_listindex)
Increments the number of 'live' objects for a list index in the TheArray.
Definition: populationmanager.h:437