?? support.cc
字號:
#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Genotype::write(unsigned char value=%c, int gene_number=%d)\n",value,gene_number);#endif /* DEBUG */ modified = 1; rep_vector[lookup[gene_number].vector]->write(value, lookup[gene_number].index);}void Genotype::write(FourByteLong value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Genotype::write(FourByteLong value=%ld, int gene_number=%d)\n",value, gene_number);#endif /* DEBUG */ modified = 1; rep_vector[lookup[gene_number].vector]->write(value, lookup[gene_number].index);}void Genotype::write(double value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Genotype::write(double value=%lf, int gene_number=%d)\n",value,gene_number);#endif /* DEBUG */ modified = 1; rep_vector[lookup[gene_number].vector]->write(value, lookup[gene_number].index);}void Genotype::write(const Representation &value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Genotype::write(const Representation &value, int gene_number=%d)\n",gene_number);#endif /* DEBUG */ modified = 1;// *rep_vector[lookup[gene_number].vector] = value; *(rep_vector[gene_number]) = value;}// Maybe we should evaluate the Phenotype?Phenotype::Phenotype(unsigned int init_number_of_dimensions, Representation **init_value_vector): number_of_dimensions(init_number_of_dimensions), value_vector(init_value_vector), value(0.0), evalflag(0){ register int i, j, k;#ifdef DEBUG (void)fprintf(logFile, "support.cc/Phenotype::Phenotype(unsigned int init_number_of_dimensions=%d, Representation **init_value_vector)\n",init_number_of_dimensions);#endif /* DEBUG */ number_of_points = 0; for (i=0; i<number_of_dimensions; i++) { number_of_points += value_vector[i]->number_of_points(); } i = 0; lookup = new Lookup[number_of_points]; for (j=0; j<number_of_dimensions; j++) { for (k=0; k<value_vector[j]->number_of_points(); k++) { lookup[i].vector = j; lookup[i].index = k; i++; } }}Phenotype::Phenotype(const Phenotype &original){ register int i;#ifdef DEBUG (void)fprintf(logFile, "support.cc/Phenotype::Phenotype(const Phenotype &original)\n");#endif /* DEBUG */ number_of_dimensions = original.number_of_dimensions; number_of_points = original.number_of_points; evalflag = original.evalflag; value = original.value; if (original.value_vector!=NULL) { value_vector = new Representation *[number_of_dimensions]; lookup = new Lookup[number_of_points]; } else { value_vector = NULL; lookup = NULL; } for (i=0; i<number_of_dimensions; i++) { value_vector[i] = original.value_vector[i]->clone(); } for (i=0; i<number_of_points; i++) { lookup[i] = original.lookup[i]; }}Phenotype &Phenotype::operator=(const Phenotype &original){ register int i;#ifdef DEBUG (void)fprintf(logFile, "support.cc/Phenotype &Phenotype::operator=(const Phenotype &original)\n");#endif /* DEBUG */ // Do the destructors get called on each element of value_vector? if (value_vector!=NULL) { for (i=0; i<number_of_dimensions; i++) { delete value_vector[i]; } delete [] value_vector; delete [] lookup; } number_of_dimensions = original.number_of_dimensions; number_of_points = original.number_of_points; value = original.value; evalflag = original.evalflag; if (original.value_vector!=NULL) { value_vector = new Representation *[number_of_dimensions]; lookup = new Lookup[number_of_points]; } else { value_vector = NULL; lookup = NULL; } for (i=0; i<number_of_dimensions; i++) { value_vector[i] = original.value_vector[i]->clone(); } for (i=0; i<number_of_points; i++) { lookup[i] = original.lookup[i]; } return(*this);}Phenotype::~Phenotype(void){ register int i;#ifdef DEBUG (void)fprintf(logFile, "support.cc/Phenotype::~Phenotype(void)\n");#endif /* DEBUG */ if (value_vector!=NULL) { for (i=0; i<number_of_dimensions; i++) { delete value_vector[i]; } delete [] value_vector; delete [] lookup; }}void Phenotype::write(Element value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Phenotype::write(Element value, int gene_number=%d)\n",gene_number);#endif /* DEBUG */ evalflag = 0; value_vector[lookup[gene_number].vector]->write(value, lookup[gene_number].index);}void Phenotype::write(unsigned char value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Phenotype::write(unsigned char value=%c, int gene_number=%d)\n",value,gene_number);#endif /* DEBUG */ evalflag = 0; value_vector[lookup[gene_number].vector]->write(value, lookup[gene_number].index);}void Phenotype::write(FourByteLong value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Phenotype::write(FourByteLong value=%ld, int gene_number=%d)\n",value,gene_number);#endif /* DEBUG */ evalflag = 0; value_vector[lookup[gene_number].vector]->write(value, lookup[gene_number].index);}void Phenotype::write(double value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Phenotype::write(double value=%lf, int gene_number=%d)\n",value,gene_number);#endif /* DEBUG */ evalflag = 0; value_vector[lookup[gene_number].vector]->write(value, lookup[gene_number].index);}void Phenotype::write(const Representation &value, int gene_number){#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Phenotype::write(const Representation &value, int gene_number=%d)\n",gene_number);#endif /* DEBUG */ evalflag = 0;// *(value_vector[lookup[gene_number].vector]) = value; *(value_vector[gene_number]) = value;}double Phenotype::evaluate(EvalMode mode){ #ifdef DEBUG (void)fprintf(logFile, "support.cc/double Phenotype::evaluate(EvalMode mode)\n");#endif /* DEBUG */ switch(mode) { case Always_Eval: value = ::evaluate(value_vector); evalflag = 1; break; case Normal_Eval: if (!evalflag) { value = ::evaluate(value_vector); evalflag = 1; } break; case Reset: evalflag = 0; break; default: (void)fprintf(logFile,"Unknown Evaluation Mode!\n"); break; } return(value);}State Phenotype::make_state(int ntor){ State retval;#ifdef DEBUG (void)fprintf(logFile, "support.cc/State Phenotype::make_state(int ntor=%d)\n",ntor);#endif /* DEBUG */ retval.ntor = ntor; make_state_from_rep(value_vector, &retval); return(retval);}Individual &Population::operator[](int ind_num){#ifdef DEBUG (void)fprintf(logFile, "support.cc/Individual &Population::operator[](int ind_num=%d)\n",ind_num);#endif /* DEBUG */ if ((ind_num<0)||(ind_num>=size)) { (void)fprintf(logFile,"ERROR: support.cc/Trying to access %d, an out of bounds individual! (0<i<%d)\n",ind_num,size); return(heap[0]); } else { return(heap[ind_num]); }}State Individual::state(int ntor){#ifdef DEBUG (void)fprintf(logFile, "support.cc/State Individual::state(int ntor=%d)\n",ntor);#endif /* DEBUG */ return(phenotyp.make_state(ntor));}Molecule * Individual::getMol(void){// Converts phenotype to mol's state and returns this individual's mol data. State molState; Molecule returnedMol; molState = phenotyp.make_state(mol->S.ntor); returnedMol = copyStateToMolecule(&molState, mol); return(&returnedMol);}void Individual::printIndividualsState(FILE *filePtr, int ntor) {#ifdef DEBUG (void)fprintf(logFile, "support.cc/void Individual::printIndividualsState(FILE *filePtr, int ntor=%d)\n",ntor);#endif /* DEBUG */ printState( filePtr, state(ntor), 0 ); }void Individual::incrementAge(void){ ++age;}Population &Population::operator=(const Population &original){ register int i;#ifdef DEBUG (void)fprintf(logFile, "support.cc/Population &Population::operator=(const Population &original)\n");#endif /* DEBUG */ if (heap!=NULL) { delete [] heap; } size = original.size; heap = new Individual[size]; lhb = original.lhb; for (i=0; i<size; i++) { heap[i] = original.heap[i]; } return(*this);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -