Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

LivestockHandler.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------
00002 //
00003 //  Thomas Berger (main author), Pepijn Schreinemachers, and Thorsten Arnold
00004 //
00005 //
00006 //  Hohenheim University (490d)
00007 //  Professorship for Land Use Economics in the Tropics and Subtropics
00008 //
00009 //  May not be distributed without permission by main author
00010 //
00011 //  File:       LivestockHandler.h (formerly lsfarm.h)
00012 //
00013 //  Contents:   Livestock data class, manages general livestock data such as
00014 //              life tables and computes livestock related coefficients such as
00015 //              expected remaining milk production per head
00016 //
00017 //------------------------------------------------------------------------------
00018 
00019 
00020 
00021 #ifndef _LivestockHandler_h
00022 #define _LivestockHandler_h
00023 
00024 
00025 #include "MatrixDouble.h"
00026 
00027 typedef struct    //neu 2004
00028 {  int lsID;      //livestock ID
00029    double purchP; //purchase price
00030    int purchA;    //purchase age
00031         int lfspan;    //lifespan
00032 
00033         int* LProws;   //row in TempLP
00034    int* LPcols;   //columns in TempLP
00035 
00036    double* weight;//live weight per period
00037         int* offspr;   //offspring per period
00038 
00039    MatrixDouble annPrds;//"annual" tradable products (i.e., offspring, milk, wool)
00040    MatrixDouble intPrds;//internal products and factors (i.e. manure, forage energy)
00041    MatrixDouble cashDmd;//cash demand
00042    MatrixDouble landDmd;//land demand
00043    MatrixDouble labDmd; //labor demand
00044 }  lstck;
00045 
00046 
00047 typedef struct    //neu 2004
00048 {  int lsID;      //livestock ID
00049    int row0;      //row index of first vintage in MILP
00050    int col0;      //column index of first vintage in MILP
00051    int colP;            //column index of selling price
00052 }  idxLP;
00053 
00054 
00055 class lsfarm
00056 {  protected:
00057         int numTypes;  //number of livestock types
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);//neu 2004 Parameter Objectcode
00087    virtual double getPurchasePrice(int lsID);//neu 2004 Parameter Objectcode
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    //functions return error flag
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 

Generated on Thu Aug 28 12:38:45 2008 for MPMAS by  doxygen 1.3.9.1