コード例 #1
0
ファイル: FHimmenblau.cpp プロジェクト: benmyb/OFEC_v0.4.2
void FHimmenblau::initialize(){
	 setDisAccuracy(0.5);
	 setAccuracy(1.e-4);
	 m_globalOpt.setFlagLocTrue();
	 m_globalOpt.setNumOpts(4); // 1 gopt+3 lopt

	 CodeVReal x(m_numDim,1);
	 x.m_x[0]=3.0;x.m_x[1]=2.0;
	 evaluate_(x,false);
	 m_globalOpt[0].data()=x;
	 x.m_x[0]=3.58149;x.m_x[1]=-1.8208 ; 
	 evaluate_(x,false);
	 m_globalOpt[1].data()=x;
	 x.m_x[0]=-2.78706 ;x.m_x[1]=3.1282 ; 
	 evaluate_(x,false);
	 m_globalOpt[2].data()=x;
	 x.m_x[0]=-3.76343;x.m_x[1]=-3.26605; 
	 evaluate_(x,false);
	 m_globalOpt[3].data()=x;
	 
	 m_originalGlobalOpt=m_globalOpt;
	 addProTag(MMP);

	 setObjSet();
}
コード例 #2
0
void DebuggerShell::evalWatchExpressions() {
  if (!paused_frame_) return;

  std::string entry_output;
  for(int i = 0; i <  watched_expressions_.size(); ++i) {
    evaluate_(watched_expressions_[i], entry_output);
    tty_->output(std::string(WTF::String::format("[%d] %s := %s", i + 1,
        watched_expressions_[i].c_str(), entry_output.c_str()).ascii().data()));
  }
}
コード例 #3
0
// only returns when it's time to continue executing JS
void DebuggerShell::maybeBlockExecution(const DebuggerCallFrame& frame) {
  if (paused_) {
    // we can't pause while we are already paused, that causes a dead-lock.
    // this function can be called from inside itself if you run an eval
    // while paused.
    return;
  }

  bool is_stepped_pause = pause_on_next_statement_ | (currentFrame() == pause_at_frame_);
  bool should_pause = pause_ASAP_ | is_stepped_pause | currentlyOnBreakpoint();

  if (should_pause == false) return;

  pause_ASAP_ = false;
  pause_on_next_statement_ = false;
  pause_at_frame_ = NULL;
  paused_ = true;
  paused_frame_ = &frame;

  WTF::CString f = WTF::String::format("Paused at "WHEREAMI_FMT, WHEREAMI_DATA).ascii();
  dumpToTTYPopup(f);

  evalWatchExpressions();

  // process events & evals while blocking JSC.
  WebCore::TimerBase::fireTimersInNestedEventLoop();
  WebCore::EventLoop loop;
  while (paused_ && !loop.ended()) {
    loop.cycle();
    WTF::MutexLocker lock(pending_evals_mutex_);
    while (pending_evals_.size()) {
      PendingEval* eval = pending_evals_.front();
      pending_evals_.pop();
      evaluate_(eval->code, eval->output);
      eval->done->signal();
    }
  }

  paused_frame_ = NULL;

  if (!is_stepped_pause) {
    f = WTF::String::format("Continuing from "WHEREAMI_FMT, WHEREAMI_DATA).ascii();
    dumpToTTY(f);
  }
}
コード例 #4
0
ファイル: FBraninRCOS.cpp プロジェクト: Changhe160/OFEC
void FBraninRCOS::initialize(){
	setOptType(MIN_OPT);
	setDisAccuracy(1.0);
	setAccuracy(1.e-5);
	m_globalOpt.setFlagLocTrue();	 
	m_globalOpt.setNumOpts(3);
	
	CodeVReal x(m_numDim,1);
	x.m_x[0]=-OFEC_PI;x.m_x[1]=12.275; x.m_obj[0]=0.397887;
	evaluate_(x,false);
	m_globalOpt[0].data()=x;
	x.m_x[0]=OFEC_PI;x.m_x[1]=2.275; 
	m_globalOpt[1].data()=x;
	x.m_x[0]=9.42478;x.m_x[1]=2.475; 
	m_globalOpt[2].data()=x;
	m_originalGlobalOpt=m_globalOpt;
	addProTag(MMP);
	setObjSet();
}
コード例 #5
0
ファイル: MovingPeak.cpp プロジェクト: Changhe160/OFEC
void MovingPeak::calculateAssociateRadius(){
	// to calculate an assosiate radius of peak i, find the nearest peak j, get the valley point, the distance
	// between peak i and the valley point is the associate radius of peak i
	double *point=new double[m_numDim];
	double *asRa=new double[m_numDim];

	for(int i=0;i<m_numPeaks;i++){
		double dis; int nearest=-1;
		if(!isVisable(i)) continue;
		for(int j=0,count=0;j<m_numPeaks;j++,count++){
			if(j==i||!isVisable(j)) {count--;continue;}
			double d=0;
			for(int dim=0;dim<m_numDim;dim++){
				d+=(mpp_peak[i][dim]-mpp_peak[j][dim])*(mpp_peak[i][dim]-mpp_peak[j][dim]);
			}
			d=sqrt(d);
			if(0==count){
				dis=d;
				nearest=j;
			}else if(dis>d){
				dis=d;
				nearest=j;
			}
		}
		if(nearest!=-1){
			//normalize vector point
			for(int dim=0;dim<m_numDim;dim++){
				point[dim]=mpp_peak[nearest][dim]-mpp_peak[i][dim];
				point[dim]/=dis;
			}


			double height,asHeight;
			height=asHeight=mp_height[i];
			copy(mpp_peak[i],mpp_peak[i]+m_numDim,asRa);
			//test in direction of point with a step of dis/100
			while(asHeight<=height){
				bool flagBreak=false;
				for(int dim=0;dim<m_numDim;dim++){
					asRa[dim]+=dis/100*point[dim];
					if((asRa[dim]-mpp_peak[i][dim])*(mpp_peak[nearest][dim]-asRa[dim])<0){
						flagBreak=true;
						break;
					}
				}
				if(flagBreak) break;
				height=asHeight;
				CodeVReal s(m_numDim,m_numObj);
				copy(asRa,asRa+m_numDim,s.m_x.begin());
				evaluate_(s,false);
				asHeight=s.m_obj[0];
			}

			mp_associateRadius[i]=0;
			for(int dim=0;dim<m_numDim;dim++){
				// correction for one step backward
				asRa[dim]-=dis/200*point[dim];
				mp_associateRadius[i]+=(asRa[dim]-mpp_peak[i][dim])*(asRa[dim]-mpp_peak[i][dim]);
			}
			mp_associateRadius[i]=sqrt(mp_associateRadius[i]);
		}else{
			double *r=new double[2*m_numDim];
			for(int dim=0;dim<m_numDim;dim++){
				double u,l;
				m_searchRange.getSearchRange(l,u,dim);
				r[dim*2]=fabs(l-mpp_peak[i][dim]);
				r[dim*2+1]=fabs(u-mpp_peak[i][dim]);
			}
			mp_associateRadius[i]=*min_element(r,r+2*m_numDim);
			delete []r;
			r=0;
		}

	}

		delete [] point;
		delete [] asRa;
		point=0;asRa=0;
}
コード例 #6
0
ファイル: roots3.hpp プロジェクト: asadchev/asadchev
    BOOST_GPU_ENABLED
    inline void evaluate(TYPE__ X, TYPE__ *R, TYPE__ *W, const T &thread) {
	evaluate_(X, R, W, thread);
    }
コード例 #7
0
ファイル: roots3.hpp プロジェクト: asadchev/asadchev
    BOOST_GPU_ENABLED
    inline void evaluate(TYPE__ X, TYPE__ (&R)[3], TYPE__ (&W)[3]) {
	evaluate_(X, R, W, serial_tag());
    }