Gadget
catchdistribution.h
Go to the documentation of this file.
1 #ifndef catchdistribution_h
2 #define catchdistribution_h
3 
4 #include "likelihood.h"
5 #include "fleetpreyaggregator.h"
7 #include "actionattimes.h"
8 #include "ludecomposition.h"
9 #include "multinomial.h"
10 #include "charptrvector.h"
11 #include "formulavector.h"
12 
19 class CatchDistribution : public Likelihood {
20 public:
30  CatchDistribution(CommentStream& infile, const AreaClass* const Area,
31  const TimeClass* const TimeInfo, Keeper* const keeper, double weight, const char* name);
35  virtual ~CatchDistribution();
40  virtual void addLikelihood(const TimeClass* const TimeInfo);
45  virtual void Reset(const Keeper* const keeper);
50  virtual void Print(ofstream& outfile) const;
56  void setFleetsAndStocks(FleetPtrVector& Fleets, StockPtrVector& Stocks);
62  virtual void printLikelihood(ofstream& outfile, const TimeClass* const TimeInfo);
67  virtual void printSummary(ofstream& outfile);
68 private:
77  void readDistributionData(CommentStream& infile, const TimeClass* TimeInfo,
78  int numarea, int numage, int numlen);
83  double calcLikMultinomial();
89  double calcLikPearson(const TimeClass* const TimeInfo);
95  double calcLikGamma(const TimeClass* const TimeInfo);
101  double calcLikSumSquares(const TimeClass* const TimeInfo);
106  double calcLikMVNormal();
111  double calcLikMVLogistic();
117  double calcLikLog(const TimeClass* const TimeInfo);
123  double calcLikStratified(const TimeClass* const TimeInfo);
127  void calcCorrelation();
132  DoubleMatrixPtrMatrix obsDistribution;
137  DoubleMatrixPtrMatrix modelDistribution;
142  DoubleMatrix likelihoodValues;
146  FleetPreyAggregator* aggregator;
150  CharPtrVector fleetnames;
154  CharPtrVector stocknames;
158  IntMatrix areas;
162  IntMatrix ages;
166  DoubleVector lengths;
170  CharPtrVector areaindex;
174  CharPtrVector ageindex;
178  CharPtrVector lenindex;
182  int overconsumption;
186  int functionnumber;
190  char* functionname;
194  int timeindex;
198  ActionAtTimes AAT;
202  IntVector Years;
206  IntVector Steps;
211  DoubleMatrixPtrVector modelYearData;
216  DoubleMatrixPtrVector obsYearData;
221  int yearly;
225  LengthGroupDivision* LgrpDiv;
229  double epsilon;
233  Formula sigma;
237  FormulaVector params;
241  int lag;
245  int illegal;
250  LUDecomposition LU;
255  Multinomial MN;
260  const AgeBandMatrixPtrVector* alptr;
261 };
262 
263 #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 is the class used to calculate a likelihood score based on distribution data sampled from the st...
Definition: catchdistribution.h:19
virtual void Reset(const Keeper *const keeper)
This function will reset the CatchDistribution likelihood information.
Definition: catchdistribution.cc:346
virtual void printLikelihood(ofstream &outfile, const TimeClass *const TimeInfo)
This function will print information from each CatchDistribution calculation.
Definition: catchdistribution.cc:425
virtual void Print(ofstream &outfile) const
This function will print the summary CatchDistribution likelihood information.
Definition: catchdistribution.cc:387
CatchDistribution(CommentStream &infile, const AreaClass *const Area, const TimeClass *const TimeInfo, Keeper *const keeper, double weight, const char *name)
This is the CatchDistribution constructor.
Definition: catchdistribution.cc:16
virtual void printSummary(ofstream &outfile)
This function will print summary information from each CatchDistribution likelihood calculation.
Definition: catchdistribution.cc:1125
virtual ~CatchDistribution()
This is the default CatchDistribution destructor.
Definition: catchdistribution.cc:320
virtual void addLikelihood(const TimeClass *const TimeInfo)
This function will calculate the likelihood score for the CatchDistribution component.
Definition: catchdistribution.cc:560
void setFleetsAndStocks(FleetPtrVector &Fleets, StockPtrVector &Stocks)
This will select the fleets and stocks required to calculate the CatchDistribution likelihood score.
Definition: catchdistribution.cc:456
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 Formula values.
Definition: formulavector.h:10
This is the class used to calculate the value of the variables used in the model simulation.
Definition: formula.h:18
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 calculate a LU decomposition of a rectangular matrix to solve the matrix eq...
Definition: ludecomposition.h:10
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 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