⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bin2decgenome.c

📁 moealib
💻 C
字号:
#include "Bin2DecGenome.h"#include <math.h>Bin2DecMapping* Bin2DecIND::_map = 0;void Bin2DecMapping::copy(const Bin2DecMapping& org) {  if(n!=org.n) {    delete[] pRange;    pRange = new Range [n=org.n];  }  dims = org.dims; N=org.N;  for(int i=0; i<dims; i++)     pRange[i] = org.pRange[i];}void Bin2DecMapping::add(int bits, int min, int max) {   //add one dimension.  if( n==dims ) { //reallocate memory.    Range* old_ptr = pRange;    pRange = new Range[n += N];    for(int i=0; i<dims; i++)      pRange[i] = old_ptr[i];    delete [] old_ptr;  }  pRange[dims].min = min;  pRange[dims].max = max;  pRange[dims].bits = bits;  pRange[dims].reso = (int) pow(2, bits);  dims++;}int Bin2DecMapping::MSB(int i)   const {// most significant(leftmost) bit of dimen i.   int rt = 0;                           // NOTE: count from left to right.    for(int d = 0; d<i; d++) rt += pRange[d].bits;  return rt;}const PhenotypicVector& Bin2DecIND::phenotypicVector() const {  if(!mapped) {    Bin2DecIND* This =  (Bin2DecIND*) this;    for(int i=_phenotypicVector.dimensions()-1; i>=0; i--) {      int rawVal = 0;      int lsb = _map->LSB(i);      for(int j=_map->MSB(i); j<=lsb; rawVal *= 2, j++) {	if(data[j] == '1') rawVal++;      }      rawVal /= 2;  //undo the last shift operation.      This->_phenotypicVector[i] = rawVal  * _map->range(i) / _map->resolution(i);    }    This->mapped = true;  }  return _phenotypicVector;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -