28 double a = state_->getRandomizer()->getRandomDouble();
29 uint dimensionCrs = state_->getRandomizer()->getRandomInteger((
int) p1->realValue.size());
31 switch (state_->getRandomizer()->getRandomInteger(0, 1)) {
32 case 0:
for (uint i = 0; i < dimensionCrs; i++) {
33 ch->realValue[i] = p1->realValue[i];
35 ch->realValue[dimensionCrs] = a * (p2->realValue[dimensionCrs]) + (1 - a) * p1->realValue[dimensionCrs];
36 for (uint i = dimensionCrs+1; i < p1->realValue.size(); i++) {
37 ch->realValue[i] = p1->realValue[i];
40 case 1:
for (uint i = 0; i < dimensionCrs; i++) {
41 ch->realValue[i] = p2->realValue[i];
43 ch->realValue[dimensionCrs] = a * (p1->realValue[dimensionCrs]) + (1 - a) * p2->realValue[dimensionCrs];
44 for (uint i = dimensionCrs+1; i < p2->realValue.size(); i++) {
45 ch->realValue[i] = p2->realValue[i];