示例#1
0
文件: 226.cpp 项目: jovechiang/solSGU
int bfs()
{
	queue <obj> saf;
	add.put_value(1,0,-1);
	saf.push(add);
	obj node;
	while(!saf.empty())
	{		
		node = saf.front();
		saf.pop();
		if(node.num == n)
		{
			return node.dist;
		}
		for(int i = 1;i<=n;i++)
		{
			for(int c = 1;c<=3;c++)
			{
				if(mark[i][c])
					continue;
				if(m[node.num][i][c])
				{
					if(c == node.color)
						continue;
					add.put_value(i,node.dist + 1,c);
					saf.push(add);
					mark[i][c] = true;
				}
			}
		}//for e 1 to n
	}//while saf khali nist
	
	return -1;
}//int bfs
示例#2
0
	int getExecutionLevel(obj o,bool setIt){
		int l=0;
		if(o.isInstanceOf(classAggregate)){
			Aggregate a=(Aggregate)o.w;
			for(int i=0;i<a.elements();i++) l=MAX(l,getExecutionLevel((a[i])));
			if(setIt) o.executionLevel(l);
		}else{
			l=o.executionLevel();
		}
		return l;
	}
示例#3
0
文件: _set.hpp 项目: LenxWei/py11
 /** op -.
  * @throw type_err
  */
 set operator - (const obj& o)const
 {
     PyObject* r = PyNumber_Subtract(_p, o.p());
     if(r)
         return r;
     throw type_err("op - failed");        
 }
示例#4
0
文件: _tuple.hpp 项目: LenxWei/py11
 /** tuple index.
  * @return index if found
  * @throw index_err if not found
  * @throw type_err
  */
 long index(const obj& o)const
 {
     long r = PySequence_Index(_p, o.p());
     if(r == -1)
         throw index_err("index failed");
     return r;
 }
示例#5
0
文件: _tuple.hpp 项目: LenxWei/py11
 /** 'in' as 'has'.
  * @throw type_err
  */
 bool has(const obj& x)const
 {
     int r = PySequence_Contains(_p, x.p());
     if(r != -1)
         return r;
     throw type_err("has failed");
 }
示例#6
0
文件: _set.hpp 项目: LenxWei/py11
 /** op |.
  * @throw type_err
  */
 set operator | (const obj& o)const
 {
     PyObject* r = PyNumber_Or(_p, o.p());
     if(r)
         return r;
     throw type_err("op | failed");        
 }
示例#7
0
文件: _set.hpp 项目: LenxWei/py11
 /** remove an element if present
  * @throw index_err if not present
  * @throw err
  */
 void remove(const obj& o)
 {
     int r = PySet_Discard(_p, o.p());
     if(r == -1)
         throw err("set remove failed");
     else if(r == 0)
         throw index_err("set remove failed");
 }
示例#8
0
文件: _set.hpp 项目: LenxWei/py11
 /** add an element.
  * @throw val_err
  */    
 void add(const obj& o)
 {
     if(_p){
         int r = PySet_Add(_p, o.p());
         if(r != -1)
             return;
     }
     throw val_err("set add failed");
 }
示例#9
0
文件: fback.c 项目: TheMRod/Rocrail
/*
 ***** _Public functions.
 */
static Boolean _setListener( iOFBack inst, obj listenerObj, const fback_listener listenerFun ) {
  iOFBackData data = Data(inst);
  data->listenerObj = listenerObj;
  data->listenerFun = listenerFun;
  if( listenerObj != NULL ) {
    TraceOp.trc( name, TRCLEVEL_DEBUG, __LINE__, 9999, "%s listener set for %s",
      FBackOp.getId( inst ),
      listenerObj->toString(listenerObj) );
  }
  return True;
}
示例#10
0
void init()
{
  glClearColor(0.4,0.8,0.9,1.0);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(45,640.0/480.0,1.0,500.0);
  glMatrixMode(GL_MODELVIEW);
  glEnable(GL_DEPTH_TEST);
  object.load("test.obj");//load it
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  float col[]={1.0,1.0,1.0,1.0};
  glLightfv(GL_LIGHT0,GL_DIFFUSE,col);
}
示例#11
0
void display()
{
  glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
  glLoadIdentity();
  float pos[]={-1.0,1.0,-2.0,1.0};
  glLightfv(GL_LIGHT0,GL_POSITION,pos);

  /* How to move 3d elements independently off each other
  glPushMatrix();
  glTranslatef(-6.0,0, -15.0);  
  glRotatef(0.0,-1.0,1.0,-1.0);
  secondObject.draw();
  glPopMatrix(); */

  glTranslatef(-1.0,-1, -30.0);  
  glRotatef(angle,-1.0,1.0,-1.0);
  object.draw();
}
示例#12
0
inline
void
op_repelem::apply_noalias(Mat<typename obj::elem_type>& out, const obj& X, const uword copies_per_row, const uword copies_per_col)
  {
  arma_extra_debug_sigprint();
  
  typedef typename obj::elem_type eT;
  
  const uword X_n_rows = obj::is_row ? uword(1) : X.n_rows;
  const uword X_n_cols = obj::is_col ? uword(1) : X.n_cols;
  
  out.set_size(X_n_rows * copies_per_row, X_n_cols * copies_per_col);
  
  if(out.n_elem == 0)  { return; }
  
  for(uword col=0; col < X_n_cols; ++col)
    {
    const uword out_col_offset = col * copies_per_col;
    
    eT* out_colptr_first = out.colptr(out_col_offset);
    
    for(uword row=0; row < X_n_rows; ++row)
      {
      const uword out_row_offset = row * copies_per_row;
      
      const eT copy_value = X.at(row, col);
      
      for(uword row_copy=0; row_copy < copies_per_row; ++row_copy)
        {
        out_colptr_first[out_row_offset + row_copy] = copy_value;
        }
      
      if(copies_per_col != 1)
        {
        for(uword col_copy=1; col_copy < copies_per_col; ++col_copy)
          {
          eT* out_colptr = out.colptr(out_col_offset + col_copy);
          
          arrayops::copy(&out_colptr[out_row_offset], &out_colptr_first[out_row_offset], copies_per_row);
          }
        }
      }
    }
  }
示例#13
0
static Boolean _addListener( iOFBack inst, obj listener ) {
  iOFBackData data = Data(inst);
  obj l_listener = ListOp.first( data->listeners );
  while( l_listener != NULL ) {
    if( l_listener == listener ) {
      TraceOp.trc( name, TRCLEVEL_USER1, __LINE__, 9999, "%s: listener [%s] already registered", FBackOp.getId( inst ), listener->toString(listener) );
      return True;
    }
    l_listener = ListOp.next( data->listeners );
  };

  TraceOp.trc( name, TRCLEVEL_USER1, __LINE__, 9999, "%s listener added for %s", FBackOp.getId( inst ), listener->toString(listener) );
  ListOp.add( data->listeners, listener );
  return True;
}
inline
void
op_repmat::apply_noalias(Mat<typename obj::elem_type>& out, const obj& X, const uword copies_per_row, const uword copies_per_col)
  {
  arma_extra_debug_sigprint();
  
  typedef typename obj::elem_type eT;
  
  const uword X_n_rows = obj::is_row ? uword(1) : X.n_rows;
  const uword X_n_cols = obj::is_col ? uword(1) : X.n_cols;
  
  out.set_size(X_n_rows * copies_per_row, X_n_cols * copies_per_col);
  
  const uword out_n_rows = out.n_rows;
  const uword out_n_cols = out.n_cols;
  
  // if( (out_n_rows > 0) && (out_n_cols > 0) )
  //   {
  //   for(uword col = 0; col < out_n_cols; col += X_n_cols)
  //   for(uword row = 0; row < out_n_rows; row += X_n_rows)
  //     {
  //     out.submat(row, col, row+X_n_rows-1, col+X_n_cols-1) = X;
  //     }
  //   }
  
  if( (out_n_rows > 0) && (out_n_cols > 0) )
    {
    if(copies_per_row != 1)
      {
      for(uword col_copy=0; col_copy < copies_per_col; ++col_copy)
        {
        const uword out_col_offset = X_n_cols * col_copy;
        
        for(uword col=0; col < X_n_cols; ++col)
          {
                eT* out_colptr = out.colptr(col + out_col_offset);
          const eT* X_colptr   = X.colptr(col);
          
          for(uword row_copy=0; row_copy < copies_per_row; ++row_copy)
            {
            const uword out_row_offset = X_n_rows * row_copy;
            
            arrayops::copy( &out_colptr[out_row_offset], X_colptr, X_n_rows );
            }
          }
        }
      }
    else
      {
      for(uword col_copy=0; col_copy < copies_per_col; ++col_copy)
        {
        const uword out_col_offset = X_n_cols * col_copy;
        
        for(uword col=0; col < X_n_cols; ++col)
          {
                eT* out_colptr = out.colptr(col + out_col_offset);
          const eT* X_colptr   = X.colptr(col);
          
          arrayops::copy( out_colptr, X_colptr, X_n_rows );
          }
        }
      }
    }
  
  }
示例#15
0
文件: _list.hpp 项目: LenxWei/py11
 /** insert.
  */
 void insert(Py_ssize_t index, const obj& o)
 {
     int r = PyList_Insert(_p, index, o.p());
     if(r == -1)
         throw err("insert failed");
 }
示例#16
0
文件: _set.hpp 项目: LenxWei/py11
 set(const obj& o)
 {
     type_check(o);
     enter(o.p());
 }
示例#17
0
 deserializer(const obj& o)
     : first_(reinterpret_cast<ptr_t>(&*o.begin()))
     , last_(reinterpret_cast<ptr_t>(&*o.end()))
     , cursor_(first_)
 {
 }
示例#18
0
文件: _tuple.hpp 项目: LenxWei/py11
 /** tuple find a item.
  * @return index if found, -1 otherwise
  * @throw type_err
  */
 long find(const obj& o)const
 {
     long r = PySequence_Index(_p, o.p());
     return r;
 }
示例#19
0
文件: _set.hpp 项目: LenxWei/py11
 /** discard an element if present
  * @throw err
  */
 void discard(const obj& o)
 {
     int r = PySet_Discard(_p, o.p());
     if(r == -1)
         throw err("set discard failed");
 }
示例#20
0
文件: _tuple.hpp 项目: LenxWei/py11
 tuple(const obj& o)noexcept(!PY11_ENFORCE)
 {
     type_check(o);
     enter(o.p());
 }
示例#21
0
文件: show.cpp 项目: gkourtis/napl3
String oout(obj o){
	return o.isInt() 
		?	concatenateStrings(NAPL([0x),Int2String(o.w,8,16),NAPL(]))
		: toString(o,false);
}
示例#22
0
文件: _list.hpp 项目: LenxWei/py11
 /** append.
  */
 void append(const obj& o)
 {
     int r = PyList_Append(_p, o.p());
     if(r == -1)
         throw err("append failed");
 }
示例#23
0
文件: _set.hpp 项目: LenxWei/py11
 void type_check(const obj& o)noexcept(!PY11_ENFORCE)
 {
     type_check((PyObject*)o.p());
 }
示例#24
0
文件: _list.hpp 项目: LenxWei/py11
 /** set_item.
  * @throw index_err
  */
 void set_item(Py_ssize_t i, const obj& value)
 {
     int r = PyList_SetItem(_p, i, value.p());
     if(r == -1)
         throw index_err("set_item failed");
 }