tables.cc
Go to the documentation of this file.
00001 #include "osl/ptype.h"
00002 #include "osl/direction.h"
00003 #include "osl/effect/liberty8Table.h"
00004 #include "osl/pieceTable.h"
00005 #include "osl/hash/hashKey.h"
00006 
00007 #include "osl/move_generator/addEffect8Table.h"
00008 #include "osl/progress/ptypeProgress.h"
00009 #include "osl/progress/effect5x3Table.h"
00010 #include "osl/pathEncoding.h"
00011 #include "osl/effect/moveSignature.h"
00012 
00013 #include "osl/centering3x3.h"
00014 #include "osl/centering5x3.h"
00015 #include "osl/effect_util/neighboring8Direct.h"
00016 #include "osl/effect_util/neighboring8Effect.h"
00017 #include "osl/effect_util/sendOffSquare.h"
00018 
00019 #include "osl/checkmate/immediateCheckmateTable.h"
00020 #include "osl/checkmate/proofNumberTable.h"
00021 
00022 #include "osl/rating/featureSet.h"
00023 
00024 #include "osl/eval/pieceEval.h"
00025 #include "osl/eval/ppair/piecePairRawEval.h"
00026 #include "osl/eval/ppair/piecePairPieceEval.h"
00027 #include "osl/eval/endgame/attackKing.h"
00028 #include "osl/eval/endgame/defenseKing.h"
00029 #include "osl/eval/mobilityTable.h"
00030 #include "osl/eval/progressEval.h"
00031 #include "osl/eval/ml/openMidEndingEval.h"
00032 
00033 #include "osl/container/boardMask.h"
00034 namespace osl
00035 {
00037   const osl::CArray<int,10> osl::progress::PtypeProgressTable::yVals =
00038   {{   
00039     0,4,4,4,3,2,1,0,0,0
00040   }};
00041 
00042   const CArray<Offset,DIRECTION_SIZE> BoardTable::offsets = { {
00043     DirectionTraits<static_cast<Direction>(0)>::blackOffset(),
00044     DirectionTraits<static_cast<Direction>(1)>::blackOffset(),
00045     DirectionTraits<static_cast<Direction>(2)>::blackOffset(),
00046     DirectionTraits<static_cast<Direction>(3)>::blackOffset(),
00047     DirectionTraits<static_cast<Direction>(4)>::blackOffset(),
00048     DirectionTraits<static_cast<Direction>(5)>::blackOffset(),
00049     DirectionTraits<static_cast<Direction>(6)>::blackOffset(),
00050     DirectionTraits<static_cast<Direction>(7)>::blackOffset(),
00051     DirectionTraits<static_cast<Direction>(8)>::blackOffset(),
00052     DirectionTraits<static_cast<Direction>(9)>::blackOffset(),
00053     DirectionTraits<static_cast<Direction>(10)>::blackOffset(),
00054     DirectionTraits<static_cast<Direction>(11)>::blackOffset(),
00055     DirectionTraits<static_cast<Direction>(12)>::blackOffset(),
00056     DirectionTraits<static_cast<Direction>(13)>::blackOffset(),
00057     DirectionTraits<static_cast<Direction>(14)>::blackOffset(),
00058     DirectionTraits<static_cast<Direction>(15)>::blackOffset(),
00059     DirectionTraits<static_cast<Direction>(16)>::blackOffset(),
00060     DirectionTraits<static_cast<Direction>(17)>::blackOffset()
00061   } };
00062   const CArray<int,DIRECTION_SIZE> BoardTable::dxs = { {
00063     DirectionTraits<static_cast<Direction>(0)>::blackDx,
00064     DirectionTraits<static_cast<Direction>(1)>::blackDx,
00065     DirectionTraits<static_cast<Direction>(2)>::blackDx,
00066     DirectionTraits<static_cast<Direction>(3)>::blackDx,
00067     DirectionTraits<static_cast<Direction>(4)>::blackDx,
00068     DirectionTraits<static_cast<Direction>(5)>::blackDx,
00069     DirectionTraits<static_cast<Direction>(6)>::blackDx,
00070     DirectionTraits<static_cast<Direction>(7)>::blackDx,
00071     DirectionTraits<static_cast<Direction>(8)>::blackDx,
00072     DirectionTraits<static_cast<Direction>(9)>::blackDx,
00073     DirectionTraits<static_cast<Direction>(10)>::blackDx,
00074     DirectionTraits<static_cast<Direction>(11)>::blackDx,
00075     DirectionTraits<static_cast<Direction>(12)>::blackDx,
00076     DirectionTraits<static_cast<Direction>(13)>::blackDx,
00077     DirectionTraits<static_cast<Direction>(14)>::blackDx,
00078     DirectionTraits<static_cast<Direction>(15)>::blackDx,
00079     DirectionTraits<static_cast<Direction>(16)>::blackDx,
00080     DirectionTraits<static_cast<Direction>(17)>::blackDx
00081   } };
00082   const CArray<int,DIRECTION_SIZE> BoardTable::dys = { {
00083     DirectionTraits<static_cast<Direction>(0)>::blackDy,
00084     DirectionTraits<static_cast<Direction>(1)>::blackDy,
00085     DirectionTraits<static_cast<Direction>(2)>::blackDy,
00086     DirectionTraits<static_cast<Direction>(3)>::blackDy,
00087     DirectionTraits<static_cast<Direction>(4)>::blackDy,
00088     DirectionTraits<static_cast<Direction>(5)>::blackDy,
00089     DirectionTraits<static_cast<Direction>(6)>::blackDy,
00090     DirectionTraits<static_cast<Direction>(7)>::blackDy,
00091     DirectionTraits<static_cast<Direction>(8)>::blackDy,
00092     DirectionTraits<static_cast<Direction>(9)>::blackDy,
00093     DirectionTraits<static_cast<Direction>(10)>::blackDy,
00094     DirectionTraits<static_cast<Direction>(11)>::blackDy,
00095     DirectionTraits<static_cast<Direction>(12)>::blackDy,
00096     DirectionTraits<static_cast<Direction>(13)>::blackDy,
00097     DirectionTraits<static_cast<Direction>(14)>::blackDy,
00098     DirectionTraits<static_cast<Direction>(15)>::blackDy,
00099     DirectionTraits<static_cast<Direction>(16)>::blackDy,
00100     DirectionTraits<static_cast<Direction>(17)>::blackDy
00101   } };
00102 }
00103 
00104 namespace osl
00105 {
00106   const PieceTable Piece_Table;
00107   const BoardTable Board_Table;
00108   // PtypeTable depends on BoardTable
00109   const PtypeTable Ptype_Table;
00110   // BoardTable, PtypeTable -> Liberty8Table
00111   const effect::Liberty8Table effect::Liberty8_Table;
00112 #ifndef DFPNSTATONE
00113   const eval::PtypeEvalTable eval::Ptype_Eval_Table;
00114   const eval::PtypeEvalTable eval::PieceEval::Piece_Value = eval::Ptype_Eval_Table;
00115   const eval::PtypeEvalTable eval::ProgressEval::Piece_Value = eval::Ptype_Eval_Table;
00116   eval::ml::OpenMidEndingPtypeTable eval::ml::OpenMidEndingEval::Piece_Value;
00117 #endif
00118   const hash::HashGenTable hash::Hash_Gen_Table;
00119   // PtypeTable, BoardTable -> AddEffectTable
00120   // PtypeTable, BoardTable -> AddEffect8Table
00121 #ifndef DFPNSTATONE
00122   const move_generator::addeffect8::AddEffect8Table move_generator::Add_Effect8_Table;
00123 #endif
00124 
00125 #ifndef MINIMAL
00126   const effect::MoveSignatureTable effect::Move_Signature_Table;
00127 #endif
00128   const PathEncodingTable Path_Encoding_Table;
00129 
00130 #ifndef MINIMAL
00131   const progress::PtypeProgressTable progress::Ptype_Progress_Table;
00132 #endif
00133 
00134   const Centering3x3::Table Centering3x3::table;
00135   const Centering5x3::Table Centering5x3::table;
00136   const effect_util::Neighboring8Direct::Table Neighboring8Direct::table;
00137   const effect_util::Neighboring8Effect::Table Neighboring8Effect::table;
00138   const effect_util::SendOffSquare::Table effect_util::SendOffSquare::table;
00139 
00140   const container::BoardMaskTable5x5 container::Board_Mask_Table5x5;
00141   const container::BoardMaskTable3x3 container::Board_Mask_Table3x3;
00142   const container::BoardMaskTable5x3Center container::Board_Mask_Table5x3_Center;
00143 
00144   const checkmate::ImmediateCheckmateTable checkmate::Immediate_Checkmate_Table;
00145   const checkmate::ProofNumberTable checkmate::Proof_Number_Table;
00146   const checkmate::EdgeTable checkmate::Edge_Table;
00147 #ifndef MINIMAL
00148   const eval::ppair::PiecePairRawTable eval::ppair::PiecePairRawTable::Table;
00149   const eval::ppair::PiecePairPieceTable eval::ppair::PiecePairPieceTable::Table;
00150   eval::PtypeEvalTable eval::ppair::PiecePairPieceTable::Piece_Value
00151   = eval::Ptype_Eval_Table;
00152 
00153   eval::endgame::AttackKing::Table eval::endgame::AttackKing::table;
00154   eval::endgame::DefenseKing::Table eval::endgame::DefenseKing::table;
00155 #endif
00156 #ifndef DFPNSTATONE
00157   const progress::Effect5x3Table progress::Effect5x3_Table;
00158 #endif
00159 #ifndef MINIMAL
00160   const CArray<int, 9> eval::MobilityTable::rookVertical = { {
00161       -61,-43,-22,-9,-2,9,12,17,17,
00162     } };
00163 
00164   const CArray<int, 9> eval::MobilityTable::rookHorizontal={{
00165       -72,-47,-18,4,10,28,21,27,27,
00166     }};
00167   const CArray<int, 9> eval::MobilityTable::prookVertical={{
00168       -45,-26,-17,-13,-1,1,10,8,8,
00169     }};
00170   const CArray<int, 9> eval::MobilityTable::prookHorizontal={{
00171       -35,-23,-16,-10,-4,4,11,12,12,
00172     }};
00173   const CArray<int, 17> eval::MobilityTable::bishop={{
00174       -60,-30,-6,2,4,8,10,12,
00175       12,13,15,17,19,21,23,25,27
00176     }};
00177   const CArray<int, 17> eval::MobilityTable::pbishop={{
00178       -39,-30,-9,-6,-2,2,0,5,
00179       13,15,17,19,21,23,25,27,29
00180     }};
00181   const CArray<int, 9> eval::MobilityTable::lance={{
00182       -10,-7,2,6,18,25,27,24,24
00183     }};
00184 #endif
00185 }
00186 
00187 
00188 // ;;; Local Variables:
00189 // ;;; mode:c++
00190 // ;;; c-basic-offset:2
00191 // ;;; End:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines