14   for (
size_t i = 0; i < weights.
dimension(); ++i)
 
   16     table[i] = weights.
value(i);
 
   22                 PieceMask black_mask, PieceMask white_mask)
 const 
   25   while (black_mask.any())
 
   27     const osl::Piece piece = state.pieceOf(black_mask.takeOneBit());
 
   28     value += table[piece.
ptype()];
 
   30   while (white_mask.any())
 
   32     const osl::Piece piece = state.pieceOf(white_mask.takeOneBit());
 
   33     value -= table[piece.
ptype()];
 
   45     for (
int y = 0; y <= 16; ++y)
 
   47       for (
int x = 0; x <= 8; ++x)
 
   49         const int distance = x * 17 + y;
 
   50         table[i][distance][stage] =
 
   59           PieceMask black_mask, PieceMask white_mask)
 
   62   const Square black_king = state.kingSquare<
BLACK>();
 
   63   const Square white_king = state.kingSquare<
WHITE>();
 
   64   while (black_mask.any())
 
   66     const osl::Piece piece = state.pieceOf(black_mask.takeOneBit());
 
   67     value += table[piece.
ptype()][index(black_king, piece)];
 
   69   while (white_mask.any())
 
   71     const osl::Piece piece = state.pieceOf(white_mask.takeOneBit());
 
   72     value -= table[piece.
ptype()][index(white_king, piece)];
 
   87   for (
size_t i = 0; i < ONE_DIM; ++i)
 
   90       table[i][s] = weights.
value(i + ONE_DIM*s);
 
   97   for (
size_t i = 0; i < ONE_DIM; ++i)
 
  100       distance_table[i][s] = weights.
value(i + ONE_DIM*s);
 
  107   for (
size_t i = 0; i < ONE_DIM; ++i)
 
  110       pawn_table[i][s] = weights.
value(i + ONE_DIM*s);
 
  114 template <osl::Player Defense>
 
  119   const Square king = state.kingSquare<Defense>();
 
  121   while (pin_mask.any())
 
  123     const Piece piece = state.pieceOf(pin_mask.takeOneBit());
 
  124     if (!state.hasEffectAt<Defense>(piece.
square()))
 
  130                         std::abs(king.
x() - piece.
square().
x()) - 1] +
 
  132       if (pawnAttack<Defense>(state, piece))
 
  137     else if (king.
x() == piece.
square().
x())
 
  139       if (state.hasEffectByPtypeStrict<
LANCE>(
alt(Defense),
 
  144                           std::abs(king.
y() - piece.
square().
y()) - 1] +
 
  151                           std::abs(king.
y() - piece.
square().
y()) - 1] +
 
  162                           std::abs(king.
x() - piece.
square().
x()) - 1] +
 
  164         if (pawnAttack<Defense>(state, piece))
 
  173                           std::abs(king.
x() - piece.
square().
x()) - 1] +
 
  175         if (pawnAttack<Defense>(state, piece))
 
  188   return evalOne<BLACK>(state) - evalOne<WHITE>(state);
 
  198   for (
size_t i = 0; i < ONE_DIM; ++i)
 
  201       table[i][s] = weights.
value(i + ONE_DIM*s);
 
  205 template <osl::Player Defense>
 
  210   const Square king = state.kingSquare<Defense>();
 
  211   PieceMask open_mask = state.checkShadow(
alt(Defense));
 
  212   while (open_mask.any())
 
  214     const Piece piece = state.pieceOf(open_mask.takeOneBit());
 
  219     else if (king.
x() == piece.
square().
x())
 
  221       if (state.hasEffectByPtypeStrict<
LANCE>(
alt(Defense),
 
  250   return evalOne<BLACK>(state) - evalOne<WHITE>(state);