3 #ifndef EVAL_PROGRESSEVAL_H 
    4 #define EVAL_PROGRESSEVAL_H 
   22 #include <boost/static_assert.hpp> 
   49     template <
class OpeningEval>
 
   79       template<Player P, Ptype PTYPE, Direction Dir, Direction LongDir>
 
   81       template <Player P, Ptype PTYPE>
 
   89         return opening_eval_t::initialized();
 
   91       static bool setUp(
const char *filename)
 
   93         if (! opening_eval_t::setUp())
 
  100         if (! opening_eval_t::setUp())
 
  110                                        Progress16 black_defense,
 
  111                                        Progress16 white_defense) 
 
  114           (white.value() * 2 - white_defense.value()
 
  115            - black.value() * 2 + black_defense.value())
 
  122                               Progress16 black_defense,
 
  123                               Progress16 white_defense,
 
  130         assert(progress16.isValid());
 
  131         assert(black.isValid());
 
  132         assert(white.isValid());
 
  136         int result = value_opening*16 + 
 
  137           progress16.value() * (value_endgame-value_opening +
 
  147         assert(result % 2 == 0);
 
  185       int expect(
const NumEffectState& state, 
Move move) 
const;
 
  190       void update(
const NumEffectState& new_state, 
Move last_move);
 
  193       template <Player Attack, Direction Dir>
 
  196       template <osl::Player P>
 
  209         return composeValue(opening_eval_t::infty(), 0, Progress16(0),
 
  210                             Progress16(0), Progress16(0), Progress16(0),
 
  211                             Progress16(0), 0, 0, 0);