00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _LivestockHandler_h
00022 #define _LivestockHandler_h
00023
00024
00025 #include "MatrixDouble.h"
00026
00027 typedef struct
00028 { int lsID;
00029 double purchP;
00030 int purchA;
00031 int lfspan;
00032
00033 int* LProws;
00034 int* LPcols;
00035
00036 double* weight;
00037 int* offspr;
00038
00039 MatrixDouble annPrds;
00040 MatrixDouble intPrds;
00041 MatrixDouble cashDmd;
00042 MatrixDouble landDmd;
00043 MatrixDouble labDmd;
00044 } lstck;
00045
00046
00047 typedef struct
00048 { int lsID;
00049 int row0;
00050 int col0;
00051 int colP;
00052 } idxLP;
00053
00054
00055 class lsfarm
00056 { protected:
00057 int numTypes;
00058 idxLP* lstckMilp;
00059 lstck* lstckData;
00060
00061 int lsProds;
00062 int lsInPrd;
00063
00064 public:
00065 lsfarm(void)
00066 { numTypes = 0;
00067 lstckMilp = NULL;
00068 lstckData = NULL;
00069 }
00070
00071 virtual ~lsfarm()
00072 { deallocateMem();
00073 }
00074
00075 virtual void readInputFromFile(const char*);
00076 virtual void writeInputIntoFile(char*);
00077
00078 virtual int getLsProds();
00079 virtual int getLsInPrd();
00080
00081 virtual int getNumTypes();
00082 virtual int getTypeID(int i);
00083 virtual int getRow0LP(int lsID);
00084 virtual int getCol0LP(int lsID);
00085 virtual int getColPLP(int lsID);
00086 virtual int checkIfLivestock(int lsID);
00087 virtual double getPurchasePrice(int lsID);
00088 virtual int getPurchaseAge(int lsID);
00089 virtual int getLifespan(int lsID);
00090 virtual int isCulled(int lsID, int age);
00091
00092 virtual double getActWeight(int lsID, int age);
00093 virtual int getNumOffspr(int lsID, int age);
00094
00095 virtual int getWgtRowLP (int lsID);
00096 virtual int getWgtColLP (int lsID);
00097 virtual int getOffRowLP (int lsID);
00098 virtual int getOffColLP (int lsID);
00099 virtual int getPrdRowLP (int lsID, int row);
00100 virtual int getPrdColLP (int lsID, int row);
00101 virtual int getIntRowLP (int lsID, int row);
00102 virtual int getIntColLP (int lsID, int row);
00103 virtual int getCashRowLP(int lsID, int row);
00104 virtual int getCashColLP(int lsID, int row);
00105 virtual int getLandRowLP(int lsID, int row);
00106 virtual int getLandColLP(int lsID, int row);
00107 virtual int getLabRowLP (int lsID, int row);
00108 virtual int getLabColLP (int lsID, int row);
00109
00110
00111
00112 virtual int addActOffs(MatrixDouble& mtx, int lsID, int age);
00113 virtual int addExpOffs(MatrixDouble& mtx, int lsID, int age, double=0.0);
00114 virtual int addActPrds(MatrixDouble& mtx, int lsID, int age);
00115 virtual int addExpPrds(MatrixDouble& mtx, int lsID, int age, double=0.0);
00116 virtual int addActIntPrds(MatrixDouble& mtx, int lsID, int age);
00117 virtual int addExpIntPrds(MatrixDouble& mtx, int lsID, int age, double=0.0);
00118 virtual int addActCashDmd(MatrixDouble& mtx, int lsID, int age);
00119 virtual int addExpCashDmd(MatrixDouble& mtx, int lsID, int age, double=0.0);
00120 virtual int addActLandDmd(MatrixDouble& mtx, int lsID, int age);
00121 virtual int addExpLandDmd(MatrixDouble& mtx, int lsID, int age, double=0.0);
00122 virtual int addActLabDmd(MatrixDouble& mtx, int lsID, int age);
00123 virtual int addExpLabDmd(MatrixDouble& mtx, int lsID, int age, double=0.0);
00124 virtual int addActLivWgt(MatrixDouble& mtx, int lsID, int age);
00125 virtual int addExpLivWgt(MatrixDouble& mtx, int lsID, int age, double=0.0);
00126
00127 virtual void printToScreen(void);
00128 virtual void deallocateMem(void);
00129 };
00130
00131
00132 #endif
00133