MUQ  0.4.3
SampleEstimator.h
Go to the documentation of this file.
1 #ifndef SAMPLEESTIMATOR_H
2 #define SAMPLEESTIMATOR_H
3 
4 #include <Eigen/Core>
5 
7 
8 namespace muq{
9 namespace SamplingAlgorithms{
10 
38 
39  public:
40 
41  virtual ~SampleEstimator() = default;
42 
46  virtual unsigned int BlockSize(int blockInd) const = 0;
47 
49  virtual unsigned int NumBlocks() const = 0;
50 
64  virtual Eigen::VectorXd CentralMoment(unsigned int order,
65  int blockNum=-1) const;
66 
76  virtual Eigen::VectorXd CentralMoment(unsigned int order,
77  Eigen::VectorXd const& mean,
78  int blockNum=-1) const;
79 
100  virtual Eigen::VectorXd StandardizedMoment(unsigned int order,
101  int blockInd=-1) const;
102 
117  virtual Eigen::VectorXd StandardizedMoment(unsigned int order,
118  Eigen::VectorXd const& mean,
119  int blockInd=-1) const;
120 
122  virtual Eigen::VectorXd StandardizedMoment(unsigned int order,
123  Eigen::VectorXd const& mean,
124  Eigen::VectorXd const& stdDev,
125  int blockInd=-1) const;
126 
127 
128 
133  virtual Eigen::VectorXd Mean(int blockInd=-1) const;
134 
150  virtual Eigen::VectorXd Variance(int blockInd=-1) const;
151 
155  virtual Eigen::VectorXd Variance(Eigen::VectorXd const& mean,
156  int blockInd=-1) const;
157 
172  virtual Eigen::VectorXd Skewness(int blockInd=-1) const;
173 
175  virtual Eigen::VectorXd Skewness(Eigen::VectorXd const& mean,
176  int blockInd=-1) const;
177 
178  virtual Eigen::VectorXd Skewness(Eigen::VectorXd const& mean,
179  Eigen::VectorXd const& stdDev,
180  int blockInd=-1) const;
195  virtual Eigen::VectorXd Kurtosis(int blockInd=-1) const;
196 
198  virtual Eigen::VectorXd Kurtosis(Eigen::VectorXd const& mean,
199  int blockInd=-1) const;
200 
201  virtual Eigen::VectorXd Kurtosis(Eigen::VectorXd const& mean,
202  Eigen::VectorXd const& stdDev,
203  int blockInd=-1) const;
220  virtual Eigen::MatrixXd Covariance(int blockInd=-1) const;
221 
227  virtual Eigen::MatrixXd Covariance(Eigen::VectorXd const& mean,
228  int blockInd=-1) const = 0;
229 
236  virtual Eigen::VectorXd ExpectedValue(std::shared_ptr<muq::Modeling::ModPiece> const& f,
237  std::vector<std::string> const& metains = std::vector<std::string>()) const = 0;
238 
239 
248  virtual Eigen::VectorXd StandardError(int blockInd,
249  std::string const& method) const = 0;
250 
251  virtual Eigen::VectorXd StandardError(std::string const& method="Batch") const{return StandardError(-1,method);};
252  virtual Eigen::VectorXd StandardError(int blockDim) const{return StandardError(blockDim,"Batch");};
253 
267  virtual Eigen::VectorXd ESS(int blockInd,
268  std::string const& method) const = 0;
269  virtual Eigen::VectorXd ESS(int blockDim) const {return ESS(blockDim,"Batch");};
270  virtual Eigen::VectorXd ESS(std::string const& method="Batch") const {return ESS(-1,method);};
271 
272  }; // class SampleEstimator
273 
274 }
275 }
276 #endif
Abstract base class for computing sample-based approximations of expectations.
virtual Eigen::VectorXd ESS(std::string const &method="Batch") const
virtual Eigen::MatrixXd Covariance(int blockInd=-1) const
virtual unsigned int BlockSize(int blockInd) const =0
virtual Eigen::MatrixXd Covariance(Eigen::VectorXd const &mean, int blockInd=-1) const =0
virtual Eigen::VectorXd Skewness(int blockInd=-1) const
virtual Eigen::VectorXd StandardError(int blockDim) const
virtual Eigen::VectorXd ExpectedValue(std::shared_ptr< muq::Modeling::ModPiece > const &f, std::vector< std::string > const &metains=std::vector< std::string >()) const =0
virtual Eigen::VectorXd ESS(int blockDim) const
virtual Eigen::VectorXd StandardError(int blockInd, std::string const &method) const =0
virtual Eigen::VectorXd CentralMoment(unsigned int order, int blockNum=-1) const
virtual Eigen::VectorXd StandardizedMoment(unsigned int order, int blockInd=-1) const
virtual Eigen::VectorXd Mean(int blockInd=-1) const
virtual Eigen::VectorXd Kurtosis(int blockInd=-1) const
virtual Eigen::VectorXd StandardError(std::string const &method="Batch") const
virtual Eigen::VectorXd Variance(int blockInd=-1) const
virtual unsigned int NumBlocks() const =0
virtual Eigen::VectorXd ESS(int blockInd, std::string const &method) const =0