13 #  define move_assert(x) assert(x) 
   15 #  define move_assert(x)  
   71     unsigned int hash() 
const;
 
   82                + (static_cast<unsigned int>(capture_ptype)<<16)
 
   84                + (static_cast<unsigned int>(ptype)<<24)
 
   85                + (static_cast<int>(player)<<28));
 
  112       init(from, to, ptype, capture_ptype, is_promote, player);
 
  222       assert(
from().uintValue()==0);
 
  281                               + (static_cast<unsigned int>(newPtype)<<24));
 
  291         return (P==
BLACK ? to.
y()==2 : to.
y()==8);
 
  292       default: 
return false;
 
  302       if(
isDrop()) 
return false;
 
  306       if(
player()==
BLACK) 
return ignoreUnpromote<BLACK>();
 
  307       else return ignoreUnpromote<WHITE>();
 
  318         return (P==
BLACK ? 
to().y()!=1 : 
to().y()!=9);
 
  320         return (P==
BLACK ? 
to().y()==2 : 
to().y()==8);
 
  323       default: 
return false;
 
  327       if(
player()==
BLACK) 
return hasIgnoredUnpromote<BLACK>();
 
  328       else return hasIgnoredUnpromote<WHITE>();
 
  334 #ifdef PRESERVE_MOVE_ORDER 
  336     l=(l&0xffff0000)+((l>>8)&0xff)+((l<<8)&0xff00);
 
  338     r=(r&0xffff0000)+((r>>8)&0xff)+((r<<8)&0xff00);
 
  350     return ! (lhs == rhs);
 
  356     template <
typename T> 
struct hash;