41 template <
typename T, 
typename NUM, 
typename OTHER>
    52         template <
typename VEC>
    56         template <
typename VEC>
    61         template <
typename VEC>
    66         template <
typename VEC1, 
typename VEC2>
    68             VEC1& vx, VEC2& vy, 
const NUM 
width = 1.0)
 const    70             std::vector<double> vvx, vvy;
    72             vx.assign(vvx.begin(), vvx.end());
    73             vy.assign(vvy.begin(), vvy.end());
    77             std::vector<double>& vx, std::vector<double>& vy,
    78             const NUM 
width = 1.0)
 const    83             hist.getHistogram(vx, vy);
   107             throw std::logic_error(
"Value generator function is not set.");
   108         std::vector<T> baseData(N);
   109         std::vector<NUM> errorData(N);
   116                 baseData.begin(), baseData.end(), errorData.begin(), 
errorFun1);
   122                 throw std::logic_error(
   123                     "Experiment-related functions are not set.");
   124             std::vector<OTHER> intermediate(N);
   126                 baseData.begin(), baseData.end(), intermediate.begin(),
   129             for (
size_t i = 0; i < N; ++i)
   130                 errorData[i] = 
errorFun2(baseData[i], intermediate[i]);
   133         NUM 
res = accumulate(errorData.begin(), errorData.end(), NUM(0)) /
   140             std::vector<NUM> errorX,errorY;
   142             wnd.
plot(errorX,errorY,
"b-",
"Plot1");
   143             NUM maxVal=*std::max_element(errorY.begin(),errorY.end());
   144             const std::vector<NUM> dx{
res, 
res}, dy{.0, maxVal};
   145             wnd.
plot(dx,dy,
"r-",
"Plot2");
 double Tac() noexcept
Stops the stopwatch. 
 
void setData(const VEC &v1)
 
This class provides an easy way of computing histograms for unidimensional real valued variables...
 
CStatisticalAnalyzer(const VEC &v1)
 
void getDistribution(VEC1 &vx, VEC2 &vy, const NUM width=1.0) const
 
Create a GUI window and display plots with MATLAB-like interfaces and commands. 
 
NUM doExperiment(size_t N, double &time, bool showInWindow=false)
 
T(* valueGenerator)(mrpt::random::CRandomGenerator &)
 
A high-performance stopwatch, with typical resolution of nanoseconds. 
 
A thred-safe pseudo random number generator, based on an internal MT19937 randomness generator...
 
This base provides a set of functions for maths stuff. 
 
void add(const double x)
Add an element to the histogram. 
 
void getData(VEC &v1) const
 
Eigen::Matrix< NUM, Eigen::Dynamic, 1 > data
 
bool isOpen()
Returns false if the user has already closed the window. 
 
OTHER(* intermediateFun)(const T &)
 
NUM(* errorFun1)(const T &)
 
void getDistribution(std::vector< double > &vx, std::vector< double > &vy, const NUM width=1.0) const
 
mrpt::random::CRandomGenerator gen
 
const_iterator begin() const
 
Montecarlo simulation for experiments in 1D. 
 
void plot(const VEC1 &x, const VEC2 &y, const std::string &lineFormat=std::string("b-"), const std::string &plotName=std::string("plotXY"))
Adds a new layer with a 2D plot based on two vectors of X and Y points, using a MATLAB-like syntax...
 
void Tic() noexcept
Starts the stopwatch. 
 
GLuint GLenum GLenum transform
 
GLsizei GLsizei GLenum GLenum const GLvoid * data
 
CHistogram createWithFixedWidth(double min, double max, double binWidth)
Constructor with a fixed bin width. 
 
NUM(* errorFun2)(const T &, const OTHER &)