18 #include <gtest/gtest.h>    34         const double   dat_A[] = {2.8955668335,2.3041932983,1.9002381085,1.7993158652,1.8456197228,2.9632296740,1.9368565578,2.1988923358,2.0547605617,2.5655678993,2.3041932983,3.8406914364,2.1811218706,3.2312564555,2.4736403918,3.4703311380,1.4874417483,3.1073538218,2.1353324397,2.9541115932,1.9002381085,2.1811218706,2.4942067597,1.6851007198,1.4585872052,2.3015952197,1.0955231591,2.2979627790,1.3918738834,2.1854562572,1.7993158652,3.2312564555,1.6851007198,3.1226161015,1.6779632687,2.7195826381,1.2397348013,2.3757864319,1.6291224768,2.4463194915,1.8456197228,2.4736403918,1.4585872052,1.6779632687,2.8123267839,2.5860688816,1.4131630919,2.1914803135,1.5542420639,2.7170092067,2.9632296740,3.4703311380,2.3015952197,2.7195826381,2.5860688816,4.1669180394,2.1145239023,3.3214801332,2.6694845663,3.0742063088,1.9368565578,1.4874417483,1.0955231591,1.2397348013,1.4131630919,2.1145239023,1.8928811570,1.7097998455,1.7205860530,1.8710847505,2.1988923358,3.1073538218,2.2979627790,2.3757864319,2.1914803135,3.3214801332,1.7097998455,3.4592638415,2.1518695071,2.8907499694,2.0547605617,2.1353324397,1.3918738834,1.6291224768,1.5542420639,2.6694845663,1.7205860530,2.1518695071,2.1110960664,1.6731209980,2.5655678993,2.9541115932,2.1854562572,2.4463194915,2.7170092067,3.0742063088,1.8710847505,2.8907499694,1.6731209980,3.9093678727};
    39         A.meanAndStd(result_mean, result_std);
    42         const double  dat_good_M[] = { 2.246424086, 2.718547419, 1.899166596, 2.192679825, 2.073010093, 2.938742050, 1.648159507, 2.570463898, 1.909148862, 2.628699435 };
    43         const Eigen::Matrix<double,10,1> good_M(dat_good_M);
    44         const double  dat_good_S[] = { 0.428901371, 0.720352792, 0.468999497, 0.684910097, 0.546595053, 0.604303301, 0.328759015, 0.582584159, 0.382009344, 0.644788760 };
    45         const Eigen::Matrix<double,10,1> good_S(dat_good_S);
    47         EXPECT_NEAR((result_mean-good_M).array().abs().
sum(),0,1e-4);
    48         EXPECT_NEAR((result_std-good_S).array().abs().
sum(),0,1e-4);
    56         const double   dat_A[] = {2.8955668335,2.3041932983,1.9002381085,1.7993158652,1.8456197228,2.9632296740,1.9368565578,2.1988923358,2.0547605617,2.5655678993,2.3041932983,3.8406914364,2.1811218706,3.2312564555,2.4736403918,3.4703311380,1.4874417483,3.1073538218,2.1353324397,2.9541115932,1.9002381085,2.1811218706,2.4942067597,1.6851007198,1.4585872052,2.3015952197,1.0955231591,2.2979627790,1.3918738834,2.1854562572,1.7993158652,3.2312564555,1.6851007198,3.1226161015,1.6779632687,2.7195826381,1.2397348013,2.3757864319,1.6291224768,2.4463194915,1.8456197228,2.4736403918,1.4585872052,1.6779632687,2.8123267839,2.5860688816,1.4131630919,2.1914803135,1.5542420639,2.7170092067,2.9632296740,3.4703311380,2.3015952197,2.7195826381,2.5860688816,4.1669180394,2.1145239023,3.3214801332,2.6694845663,3.0742063088,1.9368565578,1.4874417483,1.0955231591,1.2397348013,1.4131630919,2.1145239023,1.8928811570,1.7097998455,1.7205860530,1.8710847505,2.1988923358,3.1073538218,2.2979627790,2.3757864319,2.1914803135,3.3214801332,1.7097998455,3.4592638415,2.1518695071,2.8907499694,2.0547605617,2.1353324397,1.3918738834,1.6291224768,1.5542420639,2.6694845663,1.7205860530,2.1518695071,2.1110960664,1.6731209980,2.5655678993,2.9541115932,2.1854562572,2.4463194915,2.7170092067,3.0742063088,1.8710847505,2.8907499694,1.6731209980,3.9093678727};
    60         double result_mean, result_std;
    61         A.meanAndStdAll(result_mean, result_std);
    64         const double  good_M = 2.282504177034;
    65         const double  good_S = 0.660890754096;
    67         EXPECT_NEAR(std::abs(result_mean-good_M),0,1e-4);
    68         EXPECT_NEAR(std::abs(result_std-good_S),0,1e-4);
    74         const double W_vals[6*6]={
    86         const double real_laplacian_vals[6*6]={
    95         EXPECT_NEAR( (GT_L-L).array().abs().
sum(), 0, 1e-4);
   101                 const double   dat_C1[] = {
   102                         13.737245,10.248641,-5.839599,11.108320,
   103                         10.248641,14.966139,-5.259922,11.662222,
   104                         -5.839599,-5.259922,9.608822,-4.342505,
   105                         11.108320,11.662222,-4.342505,12.121940 };
   108                 const double dat_REAL_EIGVEC[] = { 0.54800  , 0.57167,  -0.29604 ,  0.53409 };
   109                 const Eigen::Matrix<double,4,1>  REAL_EIGVEC(dat_REAL_EIGVEC);
   113                 C1.largestEigenvector(lev,1e-3, 20);
   114                 EXPECT_NEAR( (REAL_EIGVEC-lev).array().abs().
sum(), 0, 1e-3);
   124                 std::stringstream  
s(s1);
   127                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &e) { std::cerr << e.what() << std::endl; }
   128                 EXPECT_TRUE(retval) << 
"string:\n" << s1 << endl;
   129                 EXPECT_EQ(M.rows(),2);
   130                 EXPECT_EQ(M.cols(),3);
   136                 std::stringstream  
s(s1);
   139                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &e) { std::cerr << e.what() << std::endl; }
   140                 EXPECT_TRUE(retval) << 
"string:\n" << s1 << endl;
   141                 EXPECT_EQ(M.rows(),2);
   142                 EXPECT_EQ(M.cols(),2);
   147                 std::stringstream  
s(s1);
   150                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &e) { std::cerr << e.what() << std::endl; }
   151                 EXPECT_TRUE(retval) << 
"string:\n" << s1 << endl;
   152                 EXPECT_EQ(M.rows(),1);
   153                 EXPECT_EQ(M.cols(),2);
   159                 std::stringstream  
s(s1);
   162                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &e) { std::cerr << e.what() << std::endl; }
   163                 EXPECT_TRUE(retval) << 
"string:\n" << s1 << endl;
   164                 EXPECT_EQ(M.rows(),2);
   165                 EXPECT_EQ(M.cols(),3);
   171                 std::stringstream  
s(s1);
   174                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &) { }
   175                 EXPECT_FALSE(retval) << 
"string:\n" << s1 << endl;
   181                 std::stringstream  
s(s1);
   184                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &) { }
   185                 EXPECT_FALSE(retval) << 
"string:\n" << s1 << endl;
   190                 std::stringstream  
s(s1);
   193                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &) { }
   194                 EXPECT_FALSE(retval) << 
"string:\n" << s1 << endl;
   201                 std::stringstream  
s(s1);
   204                 try { M.loadFromTextFile(
s); retval=
true; } 
catch(std::exception &) { }
   205                 EXPECT_FALSE(retval) << 
"string:\n" << s1 << endl;
 A namespace of pseudo-random numbers genrators of diferent distributions. 
 
void meanAndStd(VEC &outMeanVector, VEC &outStdVector, const bool unbiased_variance=true) const
Computes a row with the mean values of each column in the matrix and the associated vector with the s...
 
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL. 
 
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction...
 
TEST(Matrices, meanAndStd)
 
EIGEN_STRONG_INLINE void laplacian(Eigen::MatrixBase< OtherDerived > &ret) const
Computes the laplacian of this square graph weight matrix. 
 
A numeric matrix of compile-time fixed size. 
 
This base provides a set of functions for maths stuff. 
 
CONTAINER::Scalar sum(const CONTAINER &v)
Computes the sum of all the elements. 
 
GLsizei const GLchar ** string
 
void meanAndStdAll(double &outMean, double &outStd, const bool unbiased_variance=true) const
Computes the mean and standard deviation of all the elements in the matrix as a whole. 
 
void loadFromTextFile(const std::string &file)
Load matrix from a text file, compatible with MATLAB text format. 
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
void largestEigenvector(OUTVECT &x, Scalar resolution=Scalar(0.01), size_t maxIterations=6, int *out_Iterations=NULL, float *out_estimatedResolution=NULL) const
Efficiently computes only the biggest eigenvector of the matrix using the Power Method, and returns it in the passed vector "x".