* some cleaner updates
This commit is contained in:
parent
fc1adfcc78
commit
fde64b063b
7 changed files with 31 additions and 50 deletions
|
|
@ -11,6 +11,18 @@ public:
|
|||
: _params(n)
|
||||
{}
|
||||
|
||||
doDistribParams(const doDistribParams& p) { *this = p; }
|
||||
|
||||
doDistribParams& operator=(const doDistribParams& p)
|
||||
{
|
||||
if (this != &p)
|
||||
{
|
||||
this->_params = p._params;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
EOT& param(unsigned int i = 0){return _params[i];}
|
||||
|
||||
unsigned int param_size(){return _params.size();}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@
|
|||
#include "doUniform.h"
|
||||
#include "doStats.h"
|
||||
|
||||
// TODO: calcule de la moyenne + covariance dans une classe derivee
|
||||
|
||||
template < typename EOT >
|
||||
class doEstimatorNormal : public doEstimator< doNormal< EOT > >
|
||||
{
|
||||
|
|
@ -19,32 +17,23 @@ public:
|
|||
unsigned int dimsize = pop[0].size();
|
||||
assert(dimsize > 0);
|
||||
|
||||
//std::vector< doVar > var(dimsize);
|
||||
doCovMatrix cov(dimsize);
|
||||
|
||||
for (unsigned int i = 0; i < popsize; ++i)
|
||||
{
|
||||
cov.update(pop[i]);
|
||||
// for (unsigned int d = 0; d < dimsize; ++d)
|
||||
// {
|
||||
// var[d].update(pop[i][d]);
|
||||
// }
|
||||
}
|
||||
|
||||
EOT mean(dimsize);
|
||||
EOT variance(dimsize);
|
||||
EOT covariance(dimsize);
|
||||
|
||||
for (unsigned int d = 0; d < dimsize; ++d)
|
||||
{
|
||||
// mean[d] = var[d].get_mean();
|
||||
// variance[d] = var[d].get_var();
|
||||
//variance[d] = var[d].get_std(); // perhaps I should use this !?!
|
||||
|
||||
mean[d] = cov.get_mean(d);
|
||||
variance[d] = cov.get_var(d);
|
||||
covariance[d] = cov.get_var(d);
|
||||
}
|
||||
|
||||
return doNormal< EOT >(mean, variance);
|
||||
return doNormal< EOT >(mean, covariance);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -83,20 +83,13 @@ public :
|
|||
// now make sure there is a dir without any genXXX file in it
|
||||
if (res) // no dir present
|
||||
{
|
||||
//s = std::string("mkdir ")+dirname;
|
||||
::mkdir(dirname.c_str(), 0755);
|
||||
}
|
||||
else if (!res && _rmFiles)
|
||||
{
|
||||
//s = std::string("/bin/rm ")+dirname+ "/" + filename + "*";
|
||||
std::string s = dirname+ "/" + filename + "*";
|
||||
::unlink(s.c_str());
|
||||
}
|
||||
// else
|
||||
// s = " ";
|
||||
|
||||
//int nothing = system(s.c_str());
|
||||
// all done
|
||||
}
|
||||
|
||||
/** accessor: has something changed (for gnuplot subclass)
|
||||
|
|
@ -148,43 +141,23 @@ public :
|
|||
*/
|
||||
eoMonitor& operator()(std::ostream& _os)
|
||||
{
|
||||
//eo::log << eo::debug << "TOTO" << std::endl;
|
||||
|
||||
//_os << "TOTO" << "\n";
|
||||
|
||||
//_os << v[0] << "\n";
|
||||
|
||||
// const eoValueParam<std::vector<double> > * ptParam =
|
||||
// static_cast<const eoValueParam<std::vector<double> >* >(vec[0]);
|
||||
|
||||
// what's the size of vec ?!?
|
||||
|
||||
eo::log << eo::debug;
|
||||
|
||||
eo::log << "vec size: " << vec.size() << std::endl;
|
||||
|
||||
const eoValueParam< EOTParam > * ptParam =
|
||||
static_cast< const eoValueParam< EOTParam >* >(vec[0]);
|
||||
|
||||
//const std::vector<double> v = ptParam->value();
|
||||
EOTParam v(ptParam->value());
|
||||
if (vec.size() == 1) // only one std::vector: -> add number in front
|
||||
{
|
||||
eo::log << "I am here..." << std::endl;
|
||||
|
||||
//eo::log << *vec[0] << std::endl;
|
||||
|
||||
for (unsigned k=0; k<v.size(); k++)
|
||||
_os << k << " " << v[k] << "\n" ;
|
||||
}
|
||||
else // need to get all other std::vectors
|
||||
{
|
||||
//std::vector<std::vector<double> > vv(vec.size());
|
||||
std::vector< EOTParam > vv(vec.size());
|
||||
vv[0]=v;
|
||||
for (unsigned i=1; i<vec.size(); i++)
|
||||
{
|
||||
//ptParam = static_cast<const eoValueParam<std::vector<double> >* >(vec[1]);
|
||||
ptParam = static_cast< const eoValueParam< EOTParam >* >(vec[1]);
|
||||
vv[i] = ptParam->value();
|
||||
if (vv[i].size() != v.size())
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@ public:
|
|||
variance() = _variance;
|
||||
}
|
||||
|
||||
doNormalParams(const doNormalParams& p)
|
||||
: doDistribParams< EOT >( p )
|
||||
{}
|
||||
|
||||
EOT& mean(){return this->param(0);}
|
||||
EOT& variance(){return this->param(1);}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@ public:
|
|||
max() = _max;
|
||||
}
|
||||
|
||||
doVectorBounds(const doVectorBounds& v)
|
||||
: doDistribParams< EOT >( v )
|
||||
{}
|
||||
|
||||
EOT& min(){return this->param(0);}
|
||||
EOT& max(){return this->param(1);}
|
||||
};
|
||||
|
|
|
|||
Reference in a new issue