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(); }
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())); } }
// 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); } }
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(); }
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; }
BOOST_GPU_ENABLED inline void evaluate(TYPE__ X, TYPE__ *R, TYPE__ *W, const T &thread) { evaluate_(X, R, W, thread); }
BOOST_GPU_ENABLED inline void evaluate(TYPE__ X, TYPE__ (&R)[3], TYPE__ (&W)[3]) { evaluate_(X, R, W, serial_tag()); }