Gadget
stockdistribution.h
Go to the documentation of this file.
1 #ifndef stockdistribution_h
2 #define stockdistribution_h
3 
4 #include "likelihood.h"
5 #include "commentstream.h"
6 #include "charptrvector.h"
7 #include "fleetpreyaggregator.h"
9 #include "multinomial.h"
10 #include "actionattimes.h"
11 
18 class StockDistribution : public Likelihood {
19 public:
28  StockDistribution(CommentStream& infile, const AreaClass* const Area,
29  const TimeClass* const TimeInfo, double weight, const char* name);
33  virtual ~StockDistribution();
38  virtual void addLikelihood(const TimeClass* const TimeInfo);
43  virtual void Reset(const Keeper* const keeper);
48  virtual void Print(ofstream& outfile) const;
53  virtual void printSummary(ofstream& outfile);
59  virtual void printLikelihood(ofstream& outfile, const TimeClass* const TimeInfo);
65  void setFleetsAndStocks(FleetPtrVector& Fleets, StockPtrVector& Stocks);
66 private:
75  void readStockData(CommentStream& infile, const TimeClass* TimeInfo,
76  int numarea, int numage, int numlen);
81  double calcLikMultinomial();
87  double calcLikSumSquares(const TimeClass* const TimeInfo);
92  DoubleMatrixPtrMatrix obsDistribution;
97  DoubleMatrixPtrMatrix modelDistribution;
102  DoubleMatrix likelihoodValues;
106  FleetPreyAggregator** aggregator;
110  CharPtrVector fleetnames;
114  CharPtrVector stocknames;
118  IntMatrix areas;
122  IntMatrix ages;
126  IntVector Years;
130  IntVector Steps;
134  CharPtrVector areaindex;
138  CharPtrVector ageindex;
142  CharPtrVector lenindex;
146  DoubleVector lengths;
150  LengthGroupDivision* LgrpDiv;
155  DoubleMatrixPtrVector modelYearData;
160  DoubleMatrixPtrVector obsYearData;
165  int yearly;
169  int overconsumption;
173  int functionnumber;
177  char* functionname;
181  int timeindex;
185  ActionAtTimes AAT;
189  double epsilon;
194  Multinomial MN;
199  const AgeBandMatrixPtrVector* alptr;
200 };
201 
202 #endif
This is the class used to associate actions with specific timesteps within the model.
Definition: actionattimes.h:14
This class implements a dynamic vector of AgeBandMatrix values.
Definition: agebandmatrixptrvector.h:12
This is the class used to store information about the areas used for the current model.
Definition: areatime.h:18
This class implements a dynamic vector of char values.
Definition: charptrvector.h:8
This is the class used to strip comments (and whitespace) from any input stream.
Definition: commentstream.h:40
This class implements a dynamic vector of DoubleMatrixPtrVector values.
Definition: doublematrixptrmatrix.h:13
This class implements a dynamic vector of DoubleMatrix values.
Definition: doublematrixptrvector.h:10
This class implements a dynamic vector of DoubleVector values.
Definition: doublematrix.h:11
This class implements a dynamic vector of double values.
Definition: doublevector.h:11
This is the class used to aggregate fleet catch information.
Definition: fleetpreyaggregator.h:18
This class implements a dynamic vector of Fleet values.
Definition: fleetptrvector.h:10
This class implements a dynamic vector of IntVector values.
Definition: intmatrix.h:10
This class implements a dynamic vector of int values.
Definition: intvector.h:11
This is the class used to store information about the variables that are used in model simulation.
Definition: keeper.h:17
This is the class used to store information about the length groups of the modelled stock population.
Definition: lengthgroup.h:10
This is the base class used to calculate the likelihood scores used to compare the modelled data in t...
Definition: likelihood.h:24
double weight
This stores the weight to be applied to the likelihood component.
Definition: likelihood.h:112
This is the class that calculates a log likelihood score by comparing 2 vectors based on a multinomia...
Definition: multinomial.h:10
This is the class used to calculate a likelihood score based on distribution data for different stock...
Definition: stockdistribution.h:18
StockDistribution(CommentStream &infile, const AreaClass *const Area, const TimeClass *const TimeInfo, double weight, const char *name)
This is the StockDistribution constructor.
Definition: stockdistribution.cc:14
virtual void printSummary(ofstream &outfile)
This function will print summary information from each StockDistribution likelihood calculation.
Definition: stockdistribution.cc:682
virtual void Print(ofstream &outfile) const
This function will print the summary StockDistribution likelihood information.
Definition: stockdistribution.cc:353
virtual void printLikelihood(ofstream &outfile, const TimeClass *const TimeInfo)
This function will print information from each StockDistribution calculation.
Definition: stockdistribution.cc:642
virtual void Reset(const Keeper *const keeper)
This function will reset the StockDistribution likelihood information.
Definition: stockdistribution.cc:325
virtual ~StockDistribution()
This is the default StockDistribution destructor.
Definition: stockdistribution.cc:295
virtual void addLikelihood(const TimeClass *const TimeInfo)
This function will calculate the likelihood score for the StockDistribution component.
Definition: stockdistribution.cc:479
void setFleetsAndStocks(FleetPtrVector &Fleets, StockPtrVector &Stocks)
This will select the fleets and stocks required to calculate the StockDistribution likelihood score.
Definition: stockdistribution.cc:368
This class implements a dynamic vector of Stock values.
Definition: stockptrvector.h:10
This is the class used to store information about the timesteps used for the current model.
Definition: areatime.h:87