fix: better dimension management in edo/adaptive operators
This commit is contained in:
parent
23f6e68d34
commit
4110534122
5 changed files with 50 additions and 8 deletions
|
|
@ -39,16 +39,31 @@ class edoDistribReset : public eoAlgoReset<typename D::EOType>
|
|||
{
|
||||
public:
|
||||
using EOType = typename D::EOType;
|
||||
|
||||
edoDistribReset( D& distrib ) :
|
||||
_has_dim(false),
|
||||
_dim(0),
|
||||
_distrib(distrib)
|
||||
{ }
|
||||
|
||||
edoDistribReset( D& distrib, size_t dim ) :
|
||||
_has_dim(true),
|
||||
_dim(dim),
|
||||
_distrib(distrib)
|
||||
{ }
|
||||
|
||||
virtual void operator()( eoPop<EOType>& pop )
|
||||
{
|
||||
_distrib.reset();
|
||||
if(_has_dim) {
|
||||
_distrib.reset(_dim);
|
||||
} else {
|
||||
_distrib.reset();
|
||||
}
|
||||
}
|
||||
|
||||
protected:
|
||||
bool _has_dim;
|
||||
size_t _dim;
|
||||
D& _distrib;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue