feat(eo): wrap ops on float vecs into ops on int vecs
Adds wrapper classes to make any MonOp or QuadOp that operates on eoReal embbedable in any operator needing an eoInt.
This commit is contained in:
parent
846006c613
commit
19ec4c4ff7
8 changed files with 241 additions and 1 deletions
28
eo/test/t-eoRealToIntMonOp.cpp
Normal file
28
eo/test/t-eoRealToIntMonOp.cpp
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#include <iostream>
|
||||
|
||||
#include <eo>
|
||||
#include <es.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
eoIntInterval bounds(1,5);
|
||||
|
||||
using Chrom = eoInt<double>;
|
||||
using MutWrapper = eoRealToIntMonOp<Chrom>;
|
||||
|
||||
eoDetUniformMutation< typename MutWrapper::EOTreal > mutreal(/*range*/6, /*nb*/5);
|
||||
|
||||
MutWrapper mutint(mutreal, bounds);
|
||||
|
||||
Chrom sol({1,2,3,4,5});
|
||||
|
||||
bool changed = mutint(sol);
|
||||
assert(changed);
|
||||
|
||||
for(auto& x : sol) {
|
||||
assert(bounds.isInBounds(x));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue