11 #include <boost/format.hpp> 
   18 using namespace osl::rating;
 
   28   cerr << 
"Usage: " << prog << 
" [-v] [-f skip] csafiles\n" 
   41 int main(
int argc, 
char **argv)
 
   43   const char *program_name = argv[0];
 
   44   bool error_flag = 
false;
 
   49   while ((c = getopt(argc, argv, 
"f:vh")) != EOF)
 
   57     default:    error_flag = 
true;
 
   63   if (error_flag || (argc < 1))
 
   69   for (
int i=0; i<argc; ++i)
 
   77             << 
"average moves/position " << moves.
getAverage() << 
"\n" 
   78             << 
"average order " << order.
getAverage() << 
"\n" 
   79             << 
"average selected score " << selected_score.
getAverage() << 
"\n" 
   81             << 
"average top score " << top_score.
getAverage() << 
"\n";
 
   82   std::cout << 
"average cycles/position " << cycles.
getAverage() << 
"\n" 
   83             << 
"average cycles/position/move " << cycles_per_move.
getAverage()
 
   91                    const NumEffectState& state)
 
   98   const size_t consumed = clock.
stop();
 
  100     top_score.
add(my_moves[0].rating());
 
  102   int count = my_moves.size();
 
  103   int order = p ? p - &*my_moves.begin() +1 : 
count;
 
  108     if (p->
rating() < -2000) {
 
  109       std::cerr << state << 
"selected " << *p << 
"\n" << my_moves;
 
  116   cycles.
add(consumed);
 
  117   cycles_per_move.
add(consumed/count);
 
  126     rec = CsaFile(filename).getRecord();
 
  128   catch (CsaIOError& e) {
 
  129     std::cerr << 
"skip " << filename <<
"\n";
 
  130     std::cerr << e.what() << 
"\n";
 
  137   NumEffectState state(rec.getInitialState());
 
  142   for (
size_t i=0; i<moves.size(); ++i) {
 
  143     const Move move = moves[i];
 
  144     assert(state.isValidMove(move));
 
  149     state.makeMove(move);