00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _PopulationCluster_h
00022 #define _PopulationCluster_h
00023
00024
00025 #include "AgentFarmHousehold.h"
00026 #include "PopulationNetworkSegment.h"
00027 #include "MatrixDouble.h"
00028
00029 typedef struct
00030 { int career;
00031 int sex;
00032 int ageLow;
00033 int ageUpp;
00034 } sexAgeGroup;
00035
00036
00037 class cluster
00038 { protected:
00039 int popID;
00040 int cluID;
00041 int cluNumAg;
00042 int actNumAg;
00043
00044 int numGroups;
00045 sexAgeGroup* SAgroups;
00046 MatrixDouble SAlotto;
00047 MatrixDouble lotto;
00048 int startC;
00049
00050 MatrixDouble fCosts;
00051
00052 MatrixDouble distrib;
00053 int addInfoR;
00054 int addInfoC;
00055 int lastRow;
00056
00057 char filename[MXLENGTH];
00058 FILE* stream;
00059
00060 public:
00061 cluster(int, int, char*);
00062
00063
00064
00065
00066
00067
00068 virtual ~cluster()
00069 { lotto.deallokieren();
00070 distrib.deallokieren();
00071 SAlotto.deallokieren();
00072 fCosts.deallokieren();
00073 delete [] SAgroups;
00074 }
00075
00076 cluster* nextCluster;
00077 virtual void setNextPtr (cluster*);
00078 virtual cluster* getNext();
00079
00080 virtual void readClusterInput();
00081 virtual void writeClusterInput(char*);
00082
00083 virtual int getCluNum();
00084 virtual int getNumAgents();
00085 virtual int getActAgents();
00086 virtual void incrNumAgents();
00087 virtual void makeConsistent();
00088
00089
00090 virtual double getFarmFixCosts(double totHa, double irrHa);
00091
00092
00093 virtual int getRowInLotto(int);
00094
00095
00096 virtual double makeLottery(const MatrixDouble& lotto, int row, int = 0, int = STAGES);
00097
00098 virtual void adjustAssetStructure(agentF*);
00099 virtual void adjustVintage(agentF*, segment*, int, int, double, int,
00100 double, double);
00101 virtual void adjustAsynchr(agentF*, segment*, double);
00102
00103 virtual void deallocateLotto();
00104 virtual void printToScreen();
00105 virtual void writeLottoInFile(char*);
00106 };
00107
00108
00109 #endif
00110