quiescenceRecord.cc
Go to the documentation of this file.
00001 /* quiescenceRecord.cc
00002  */
00003 #include "osl/search/quiescenceRecord.h"
00004 #include "osl/record/csa.h"
00005 #include "osl/ptypeTable.h"
00006 #include <boost/static_assert.hpp>
00007 #include <map>
00008 #include <iostream>
00009 
00010 #ifndef MINIMAL
00011 void osl::search::
00012 QuiescenceRecord::dump(std::ostream& os) const
00013 {
00014   os << "QuiescenceRecord " << this << "\n";
00015   os << lower_bound << " (" << (int)lower_depth << ")"
00016      << upper_bound << " (" << (int)upper_depth << ")";
00017   if (hasStaticValue())
00018   {
00019     os << " s " << static_value << toString(staticValueType());
00020     os << " t1 " << threat1.value << " " << record::csa::show(threat1.move)
00021        << " t2 " << threat2.value << " " << record::csa::show(threat2.move);
00022   }
00023   os << "\n";
00024   os << "checkmate read " << checkmate_nodes << "\t"
00025      << "threatmate read " << threatmate_nodes << "\n";
00026   os << "best move " <<  record::csa::show(bestMove()) << "\n";
00027   os << "threatmate " <<  threatmate << "\n";
00028   os << "sendoffs " << (unsigned int)threatmate.sendoffs << "\n";
00029   os << "moves " << moves_size();
00030   size_t i=0;
00031   MoveVector moves_copy;
00032   loadMoves(moves_copy);
00033   for (MoveVector::const_iterator p=moves_copy.begin(); p!=moves_copy.end(); ++p, ++i)
00034   {
00035     os << " " << record::csa::show(*p);
00036     if (i % 8 == 7)
00037       os << "\n";
00038   }
00039   if (i % 8 != 7)
00040     os << "\n";
00041 }
00042 
00043 const char *osl::search::
00044 QuiescenceRecord::toString(StaticValueType type)
00045 {
00046   switch (type)
00047   {
00048   case UNKNOWN:
00049     return "?";
00050   case UPPER_BOUND:
00051     return ">";
00052   case EXACT:
00053     return "=";
00054   default:
00055     assert(0);
00056   }
00057   return "!";                   // should not occur
00058 }
00059 #endif
00060 /* ------------------------------------------------------------------------- */
00061 // ;;; Local Variables:
00062 // ;;; mode:c++
00063 // ;;; c-basic-offset:2
00064 // ;;; End:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines