00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _AgentLivestockList_h
00021 #define _AgentLivestockList_h
00022
00023
00024 #include "AgentLivestockUnit.h"
00025
00026 #ifndef LP_OLD
00027 #include "AgentSolution.h"
00028 #else
00029 #include "FinancialMathFunctions.h"
00030 #endif
00031
00032
00033 class ls_list
00034 { protected:
00035 int scID;
00036 int hhID;
00037
00038 int hSize;
00039 int lastPID;
00040
00041 livestck* firstLivestck;
00042 livestck* lastLivestck;
00043 livestck* markedLivestck;
00044
00045 public:
00046 ls_list(int, int);
00047 virtual ~ls_list()
00048 { deleteList();
00049 }
00050
00051 virtual void makeLivestck(int lsID, int age);
00052 virtual void deallocLivestck(livestck*);
00053 virtual void insertLivestck(livestck*);
00054 virtual int getNumMembers(void);
00055 virtual int getNumLs(int lsID);
00056 virtual int getNumLsAgeGroup(int lsID, int ageLow, int ageUpp);
00057 virtual void checkLsInventory(int oid, MatrixDouble& ageLs);
00058 virtual void makeLsEntriesRHS(MatrixDouble& lsTyp, MatrixDouble& lsRHS);
00059 virtual void makeActLPcoeff(int,
00060 MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&);
00061 virtual void makeExpLPcoeff(int, double, MatrixDouble&,
00062 MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&);
00063 virtual void makeInvLPcoeff(int, double,
00064 MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&, MatrixDouble&);
00065 virtual int getLastID(void);
00066
00067 virtual livestck* searchForLivestck(int pID);
00068 virtual livestck* searchFirstType(int lsID);
00069 virtual livestck* searchNextType(int lsID);
00070 virtual livestck* searchLastType(int lsID);
00071 virtual livestck* searchPreviousType(int lsID);
00072 virtual livestck* getFirst();
00073 virtual livestck* getLast();
00074
00075 virtual void putLvstInSolution(MatrixDouble& mEntries);
00076 #ifdef LP_OLD
00077 virtual int checkSoldLivestockAtStartPeriod(MatrixDouble& lsSoldStart, l_vektor& bprod);
00078 virtual int checkSoldLivestockAtEndOfPeriod(MatrixDouble& lsSoldEnd, l_vektor& bprod);
00079 #else
00080 virtual int checkSoldLivestockAtStartPeriod(MatrixDouble& lsSoldStart, AgentSolution& agentProblemObject);
00081 virtual int checkSoldLivestockAtEndOfPeriod(MatrixDouble& lsSoldEnd, AgentSolution& agentProblemObject);
00082 #endif
00083 virtual void updateExitUnits(MatrixDouble& lsExit);
00084 virtual void updateOffspInHerd(MatrixDouble& offsp);
00085 virtual void updateAgeInHerd();
00086 virtual livestck* takeOutLivestck(livestck*);
00087
00088 virtual void printOnScreenLivestck(livestck*);
00089 virtual void printOnScreen_list(void);
00090 virtual void deleteList(void);
00091 };
00092
00093 #endif