diff --git a/src/doBounderUniform.h b/src/doBounderUniform.h new file mode 100644 index 000000000..9fac7dac3 --- /dev/null +++ b/src/doBounderUniform.h @@ -0,0 +1,35 @@ +// (c) Thales group, 2010 +/* + Authors: + Johann Dreo +*/ + +#ifndef _doBounderUniform_h +#define _doBounderUniform_h + +#include "doBounder.h" + +template < typename EOT > +class doBounderUniform : public doBounder< EOT > +{ +public: + doBounderUniform( EOT min, EOT max ) + : doBounder< EOT >( min, max ) + {} + + void operator()( EOT& sol ) + { + unsigned int size = sol.size(); + assert(size > 0); + + for (unsigned int d = 0; d < size; ++d) { + + if ( sol[d] < this->min()[d] || sol[d] > this->max()[d]) { + // use EO's global "rng" + sol[d] = rng.uniform( this->min()[d], this->max()[d] ); + } + } // for d in size + } +}; + +#endif // !_doBounderUniform_h