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
00109 const PtypeTable Ptype_Table;
00110
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
00120
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
00189
00190
00191