7#include "DistributionNUnif.h"
128 return double(rand())/double(RAND_MAX)*(xmax-xmin) + xmin;
139 vector<double> endpos(I1.
nParams);
143 for (
int i=1; i<I1.
nParams; i++)
151 vector<int> rndint(nn);
152 for (
int i=0; i<rndint.size(); i++) rndint[i] =
static_cast<int>(
GetRndUnif(0,1)*B1.
nDigits);
154 rndint.push_back(B1.
nDigits-1);
155 rndint = QSort(rndint);
157 cross(B1, B2, rndint);
171 for (
int i=1; i<I1.
nParams; i++)
193 for (
int i=0; i<IR1.
nParams; i++)
195 IR1.
x[i] = I1.
x[i]*rnd + I2.
x[i]*(1-rnd);
196 IR2.
x[i] = I2.
x[i]*rnd + I1.
x[i]*(1-rnd);
226 for (
int i=1; i<I1.
nParams; i++)
243 cross2p(B1, B2, rndint1, rndint2);
260 for (
int i=1; i<I1.
nParams; i++)
281 double dev =
GetRndUnif(-shakescale,+shakescale);
CBinary code(double x, double minrange, double maxrange, int precision)
void cross_RC_L(const CIndividual &I1, const CIndividual &I2, CIndividual &IR1, CIndividual &IR2)
void cross(const CIndividual &I1, const CIndividual &I2, CIndividual &IR1, CIndividual &IR2)
double GetRndUnif(double xmin, double xmax)
void cross2p(const CIndividual &I1, const CIndividual &I2, CIndividual &IR1, CIndividual &IR2)
double GetRndUnif(double xmin, double xmax)
CBinary extract(int spoint, int epoint)
double decode(double minrange)
void shake(double shakescale)
std::vector< double > pert
std::vector< double > perteff
CIndividual operator=(const CIndividual &C)
std::vector< int > precision
std::vector< double > minrange
std::vector< double > fit_measures
std::vector< double > maxrange