Ejemplo n.º 1
0
void Chromosome::init (int _length) {
    length = _length;
    lengthLong = quotientLong(length)+1;

    if (gene != NULL)
        delete []gene;

    gene = new unsigned long [lengthLong];
    gene[lengthLong-1] = 0;

    evaluated = false;
}
Ejemplo n.º 2
0
void FastCounting::init (int n_length)
{
  length = n_length;
  lengthLong = quotientLong(length)+1;

  if (gene != NULL)
      delete []gene;

  gene = new unsigned long [lengthLong];
  gene[lengthLong-1] = 0;

}
Ejemplo n.º 3
0
unsigned int FastCounting::getInt (int start, int length) const
{
    assert (length < (int) sizeof(unsigned int) * 8);

    int q = quotientLong(start);
    int r = remainderLong(start);

    if ( r + length <= (int) sizeof(unsigned long) * 8) {
        // with in one long
        unsigned long mask = (~(0lu)) >> (sizeof(unsigned long) * 8 - length);
        mask <<= r;

        return (unsigned int) ((gene[q] & mask) >> r);
    }
Ejemplo n.º 4
0
void Chromosome::init0 (int _length) {
    length = _length;
    lengthLong = quotientLong(length)+1;

    if (gene != NULL)
        delete []gene;

    gene = new unsigned long [lengthLong];

    for (int i=0; i<lengthLong; ++i)
        gene[i] = 0;

    key = 0;
    evaluated = false;
}
Ejemplo n.º 5
0
void Chromosome::initR (int _length) {
    length = _length;
    lengthLong = quotientLong(length)+1;

    if (gene != NULL)
        delete []gene;

    gene = new unsigned long [lengthLong];
    gene[lengthLong-1] = 0;

    key = 0;
    for (int i=0; i<length; ++i) {

        int val = myRand.flip();
        setValF(i, val);
        if (val == 1)
            key ^= zKey[i];
    }

    evaluated = false;
}