core/osl/eval/king8.h
Go to the documentation of this file.
/* king8.h
*/
#ifndef EVAL_ML_KING8_H
#define EVAL_ML_KING8_H
#include "osl/eval/weights.h"
#include "osl/eval/evalStagePair.h"
#include "osl/numEffectState.h"
#include "osl/bits/king8Info.h"
namespace osl
{
namespace eval
{
namespace ml
{
class King8Effect
{
public:
enum { DIM = 32 + 32 + 288 + 288 };
static void setUp(const Weights &weights);
static int eval(const NumEffectState &state);
private:
enum EffectState
{
NOT_EMPTY = -1,
NO_EFFECT = 0,
LESS_EFFECT,
MORE_EFFECT,
MORE_EFFECT_KING_ONLY
};
static CArray<int, 32> empty_table;
static CArray<int, 32> defense_table;
static CArray<int, 288> empty_y_table;
static CArray<int, 288> defense_y_table;
static int index(const Direction dir,
EffectState state);
static int indexY(Piece king,
const Direction dir,
EffectState state);
static void effectState(const NumEffectState &state,
const Player defense,
const Direction dir,
EffectState &empty,
EffectState &/*defense*/);
};
class King8EffectBase
{
public:
enum { DIM = 32 };
typedef CArray<int, 32> table_t;
enum EffectState
{
NOT_EMPTY = -1,
NO_EFFECT = 0,
LESS_EFFECT,
MORE_EFFECT,
MORE_EFFECT_KING_ONLY
};
template <class MakeEffectState>
static const CArray<int,2> evalCommon(const NumEffectState &state, const table_t&);
template <class MakeEffectState>
static const CArray<int,2> evalWithUpdateCommon(const NumEffectState &new_state, Move last_move,
const CArray<int,2>& last_value, const table_t&);
template <class MakeEffectState>
static std::pair<CArray<int,2>, CArray<int,2> >
evalWithUpdateCommon(const NumEffectState &new_state, Move last_move,
const CArray<int,2>& last_value_opening, const CArray<int,2>& last_value_ending,
const table_t&, const table_t&);
struct MakeEffectStateSimple;
struct MakeEffectStateDefense;
protected:
static int index(const Direction dir, EffectState state)
{
return dir * 4 + state;
}
};
class King8EffectEmptySquareBoth;
template <bool Opening>
class King8EffectEmptySquare : public King8EffectBase
{
friend class King8EffectEmptySquareBoth;
static table_t table;
public:
static void setUp(const Weights &weights);
static const CArray<int,2> eval(const NumEffectState &state);
static const CArray<int,2> evalWithUpdate(const NumEffectState &new_state, Move last_move,
const CArray<int,2>& last_value);
};
class King8EffectEmptySquareBoth : public King8EffectBase
{
public:
static std::pair<CArray<int,2>, CArray<int,2> >
evalWithUpdate(const NumEffectState &new_state, Move last_move,
const CArray<int,2>& last_value_opening,
const CArray<int,2>& last_value_ending);
};
struct King8EffectEmptySquareOpening
: public King8EffectEmptySquare<true>
{
};
struct King8EffectEmptySquareEnding
: public King8EffectEmptySquare<false>
{
};
class King8EffectDefenseSquareBoth;
template <bool Opening>
class King8EffectDefenseSquare
: public King8EffectBase
{
friend class King8EffectDefenseSquareBoth;
static CArray<int, 32> table;
public:
static void setUp(const Weights &weights);
static const CArray<int,2> eval(const NumEffectState &state);
static const CArray<int,2> evalWithUpdate(const NumEffectState &new_state, Move last_move,
const CArray<int,2>& last_value);
};
class King8EffectDefenseSquareBoth : public King8EffectBase
{
public:
static std::pair<CArray<int,2>, CArray<int,2> >
evalWithUpdate(const NumEffectState &new_state, Move last_move,
const CArray<int,2>& last_value_opening,
const CArray<int,2>& last_value_ending);
};
struct King8EffectDefenseSquareOpening
: public King8EffectDefenseSquare<true>
{
};
struct King8EffectDefenseSquareEnding
: public King8EffectDefenseSquare<false>
{
};
class King8EffectAll
{
public:
enum { ONE_DIM = 32, DIM = 32 * 5 * 2};
private:
static CArray<int, ONE_DIM> base_table;
static CArray<int, ONE_DIM> u_table;
static CArray<int, ONE_DIM> d_table;
static CArray<int, ONE_DIM> l_table;
static CArray<int, ONE_DIM> r_table;
static CArray<int, ONE_DIM> base_defense_piece_table;
static CArray<int, ONE_DIM> u_defense_piece_table;
static CArray<int, ONE_DIM> d_defense_piece_table;
static CArray<int, ONE_DIM> l_defense_piece_table;
static CArray<int, ONE_DIM> r_defense_piece_table;
public:
enum EffectState
{
NOT_EMPTY = -1,
NO_EFFECT = 0,
LESS_EFFECT,
MORE_EFFECT,
MORE_EFFECT_KING_ONLY
};
static void setUp(const Weights &weights);
King8EffectAll() { }
static int eval(const NumEffectState &state,
PieceMask black_mask, PieceMask white_mask);
static void effectState(const NumEffectState &state,
const Player defense,
const Direction dir,
EffectState &empty,
EffectState &/*defense*/);
static int index(const Direction dir, EffectState state);
};
struct KingXBlockedBase
{
enum { DIM = 10 };
typedef CArray<MultiInt, 10> table_t;
static const MultiIntPair eval(const NumEffectState &state,
const table_t& table);
template <osl::Player P>
static int index(Square king, int diff);
template <osl::Player P>
static bool isBlocked(const NumEffectState &state,
int diff);
#if 0
static std::pair<CArray<int,2>,CArray<int,2> >
evalWithUpdate(const NumEffectState &new_state, Move last_move,
const CArray<int,2>& last_value_o,
const CArray<int,2>& last_value_e,
const table_t& table_o, const table_t& table_e);
#endif
};
class KingXBlockedBoth;
class KingXBlocked : public KingXBlockedBase
{
friend class KingXBlockedBoth;
friend class KingXBlockedYBase;
public:
static void setUp(const Weights &weights,int stage);
static MultiIntPair eval(const NumEffectState &state)
{
return KingXBlockedBase::eval(state, table);
}
private:
static table_t table;
};
class KingXBlockedYBase// : public KingXBlockedBase
{
public:
enum { DIM = 90 };
typedef CArray<MultiInt, 90> table_t;
static const MultiIntPair eval(const NumEffectState &state,
const table_t& table);
static void
evalWithUpdateBang(const NumEffectState &state, Move laste_move,
MultiIntPair &last_values_and_out);
template <osl::Player P>
static int index(Square king, int diff);
private:
template <int Sign>
static void adjust(int index, int index_y, MultiInt &out);
};
class KingXBlockedY : public KingXBlockedYBase
{
friend class KingXBlockedBoth;
friend class KingXBlockedYBase;
public:
static void setUp(const Weights &weights,int stage);
static const MultiIntPair eval(const NumEffectState &state)
{
return KingXBlockedYBase::eval(state, table);
}
private:
static table_t table;
};
class KingXBlockedBoth : public KingXBlockedBase
{
public:
static void
evalWithUpdateBang(const NumEffectState &new_state, Move last_move,
MultiIntPair& last_values_and_out);
};
class KingXBothBlocked
{
friend class KingXBlockedYBase;
public:
enum { ONE_DIM = 5, DIM = ONE_DIM * EvalStages };
static void setUp(const Weights &weights);
static MultiIntPair eval(const NumEffectState &state);
private:
static CArray<MultiInt, ONE_DIM> table;
static int index(const Square king)
{
const int x = king.x();
return (x > 5 ? 9 - x : x - 1);;
}
template <Player P>
static int indexY(const Square king)
{
const int x = king.x();
const int y = (P == BLACK ? king.y() : 10 - king.y());
return (y - 1) * 5 + (x > 5 ? 9 - x : x - 1);
}
template <int Sign>
static void adjust(int index, int index_y, MultiInt &out);
};
class KingXBothBlockedY
{
friend class KingXBlockedYBase;
friend class KingXBothBlocked;
public:
enum { ONE_DIM = 5 * 9, DIM = ONE_DIM * EvalStages };
static void setUp(const Weights &weights);
private:
static CArray<MultiInt, ONE_DIM> table;
};
class KingXBlocked3
{
friend class KingXBlocked3Y;
public:
enum { ONE_DIM = 80, DIM = ONE_DIM * EvalStages };
static MultiInt eval(const NumEffectState &state);
static void setUp(const Weights &weights);
private:
template <int Sign>
static void adjust(int index_y, MultiInt &result)
{
if(Sign>0)
result += y_table[index_y];
else
result -= y_table[index_y];
}
template <Player P>
static int index(const Square king, bool is_l,
bool u_blocked, bool opp_u_blocked, bool opp_blocked)
{
int x = king.x();
if (x >= 6)
{
x = 10 - x;
if (P == BLACK)
{
is_l = !is_l;
}
}
else if (P == WHITE && x <= 4)
{
is_l = !is_l;
}
return x - 1 + 5 * ((is_l ? 1 : 0) + 2 * ((u_blocked ? 1 : 0) + 2 * ((opp_u_blocked ? 1 : 0) +2 * (opp_blocked ? 1 : 0))));
}
template <Player P>
static int indexY(const Square king, bool is_l,
bool u_blocked, bool opp_u_blocked,
bool opp_blocked)
{
int x = king.x();
const int y = (P == BLACK ? king.y() : 10 - king.y());
if (x >= 6)
{
x = 10 - x;
if (P == BLACK)
{
is_l = !is_l;
}
}
else if (P == WHITE && x <= 4)
{
is_l = !is_l;
}
return x - 1 + 5 * (y - 1 + 9 * ((is_l ? 1 : 0) + 2 * ((u_blocked ? 1 : 0) + 2 * ((opp_u_blocked ? 1 : 0) + 2 * (opp_blocked ? 1 : 0)))));
}
static CArray<MultiInt, 80> table;
static CArray<MultiInt, 720> y_table;
};
class KingXBlocked3Y
{
public:
enum { ONE_DIM = 720, DIM = ONE_DIM * EvalStages };
static void setUp(const Weights &weights);
};
class AnagumaEmpty
{
public:
enum { DIM = 4 };
static void setUp(const Weights &weights,int stage);
static MultiInt eval(const NumEffectState &state);
static int index(Square king, Square target);
template <osl::Player Defense>
static MultiInt evalOne(const NumEffectState &state);
private:
static CArray<MultiInt, 4> table;
};
}
}
}
#endif // EVAL_ML_KING8_H
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
osl::CArray
Definition container.h:20
osl::Move
圧縮していない moveの表現 .
Definition basic_type.h:1052
osl::NumEffectState
利きを持つ局面
Definition numEffectState.h:34
osl::PieceMask
駒番号のビットセット.
Definition pieceMask.h:21
osl::Piece
駒.
Definition basic_type.h:788
osl::Square
Definition basic_type.h:532
osl::Square::y
int y() const
将棋としてのY座標を返す.
Definition basic_type.h:567
osl::Square::x
int x() const
将棋としてのX座標を返す.
Definition basic_type.h:563
osl::eval::ml::AnagumaEmpty
Definition core/osl/eval/king8.h:358
osl::eval::ml::AnagumaEmpty::evalOne
static MultiInt evalOne(const NumEffectState &state)
Definition king8.cc:1043
osl::eval::ml::AnagumaEmpty::DIM
@ DIM
Definition core/osl/eval/king8.h:360
osl::eval::ml::AnagumaEmpty::setUp
static void setUp(const Weights &weights, int stage)
Definition king8.cc:1027
osl::eval::ml::AnagumaEmpty::table
static CArray< MultiInt, 4 > table
Definition core/osl/eval/king8.h:367
osl::eval::ml::AnagumaEmpty::index
static int index(Square king, Square target)
Definition king8.cc:1036
osl::eval::ml::King8EffectAll::ONE_DIM
@ ONE_DIM
Definition core/osl/eval/king8.h:147
osl::eval::ml::King8EffectAll::DIM
@ DIM
Definition core/osl/eval/king8.h:147
osl::eval::ml::King8EffectAll::l_defense_piece_table
static CArray< int, ONE_DIM > l_defense_piece_table
Definition core/osl/eval/king8.h:157
osl::eval::ml::King8EffectAll::d_defense_piece_table
static CArray< int, ONE_DIM > d_defense_piece_table
Definition core/osl/eval/king8.h:156
osl::eval::ml::King8EffectAll::d_table
static CArray< int, ONE_DIM > d_table
Definition core/osl/eval/king8.h:151
osl::eval::ml::King8EffectAll::EffectState
EffectState
Definition core/osl/eval/king8.h:161
osl::eval::ml::King8EffectAll::NO_EFFECT
@ NO_EFFECT
Definition core/osl/eval/king8.h:163
osl::eval::ml::King8EffectAll::LESS_EFFECT
@ LESS_EFFECT
Definition core/osl/eval/king8.h:164
osl::eval::ml::King8EffectAll::MORE_EFFECT
@ MORE_EFFECT
Definition core/osl/eval/king8.h:165
osl::eval::ml::King8EffectAll::MORE_EFFECT_KING_ONLY
@ MORE_EFFECT_KING_ONLY
Definition core/osl/eval/king8.h:166
osl::eval::ml::King8EffectAll::NOT_EMPTY
@ NOT_EMPTY
Definition core/osl/eval/king8.h:162
osl::eval::ml::King8EffectAll::u_table
static CArray< int, ONE_DIM > u_table
Definition core/osl/eval/king8.h:150
osl::eval::ml::King8EffectAll::r_table
static CArray< int, ONE_DIM > r_table
Definition core/osl/eval/king8.h:153
osl::eval::ml::King8EffectAll::u_defense_piece_table
static CArray< int, ONE_DIM > u_defense_piece_table
Definition core/osl/eval/king8.h:155
osl::eval::ml::King8EffectAll::base_defense_piece_table
static CArray< int, ONE_DIM > base_defense_piece_table
Definition core/osl/eval/king8.h:154
osl::eval::ml::King8EffectAll::r_defense_piece_table
static CArray< int, ONE_DIM > r_defense_piece_table
Definition core/osl/eval/king8.h:158
osl::eval::ml::King8EffectAll::setUp
static void setUp(const Weights &weights)
Definition king8.cc:408
osl::eval::ml::King8EffectAll::index
static int index(const Direction dir, EffectState state)
Definition king8.cc:481
osl::eval::ml::King8EffectAll::l_table
static CArray< int, ONE_DIM > l_table
Definition core/osl/eval/king8.h:152
osl::eval::ml::King8EffectAll::King8EffectAll
King8EffectAll()
Definition core/osl/eval/king8.h:169
osl::eval::ml::King8EffectAll::base_table
static CArray< int, ONE_DIM > base_table
Definition core/osl/eval/king8.h:149
osl::eval::ml::King8EffectAll::effectState
static void effectState(const NumEffectState &state, const Player defense, const Direction dir, EffectState &empty, EffectState &)
Definition king8.cc:436
osl::eval::ml::King8EffectBase
Definition core/osl/eval/king8.h:51
osl::eval::ml::King8EffectBase::EffectState
EffectState
Definition core/osl/eval/king8.h:56
osl::eval::ml::King8EffectBase::NOT_EMPTY
@ NOT_EMPTY
Definition core/osl/eval/king8.h:57
osl::eval::ml::King8EffectBase::MORE_EFFECT_KING_ONLY
@ MORE_EFFECT_KING_ONLY
Definition core/osl/eval/king8.h:61
osl::eval::ml::King8EffectBase::LESS_EFFECT
@ LESS_EFFECT
Definition core/osl/eval/king8.h:59
osl::eval::ml::King8EffectBase::MORE_EFFECT
@ MORE_EFFECT
Definition core/osl/eval/king8.h:60
osl::eval::ml::King8EffectBase::NO_EFFECT
@ NO_EFFECT
Definition core/osl/eval/king8.h:58
osl::eval::ml::King8EffectBase::evalCommon
static const CArray< int, 2 > evalCommon(const NumEffectState &state, const table_t &)
osl::eval::ml::King8EffectBase::evalWithUpdateCommon
static std::pair< CArray< int, 2 >, CArray< int, 2 > > evalWithUpdateCommon(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value_opening, const CArray< int, 2 > &last_value_ending, const table_t &, const table_t &)
osl::eval::ml::King8EffectBase::table_t
CArray< int, 32 > table_t
Definition core/osl/eval/king8.h:54
osl::eval::ml::King8EffectBase::index
static int index(const Direction dir, EffectState state)
Definition core/osl/eval/king8.h:78
osl::eval::ml::King8EffectBase::DIM
@ DIM
Definition core/osl/eval/king8.h:53
osl::eval::ml::King8EffectBase::evalWithUpdateCommon
static const CArray< int, 2 > evalWithUpdateCommon(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value, const table_t &)
osl::eval::ml::King8EffectDefenseSquareBoth
Definition core/osl/eval/king8.h:127
osl::eval::ml::King8EffectDefenseSquareBoth::evalWithUpdate
static std::pair< CArray< int, 2 >, CArray< int, 2 > > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value_opening, const CArray< int, 2 > &last_value_ending)
Definition king8.cc:374
osl::eval::ml::King8EffectDefenseSquare
Definition core/osl/eval/king8.h:117
osl::eval::ml::King8EffectDefenseSquare::King8EffectDefenseSquareBoth
friend class King8EffectDefenseSquareBoth
Definition core/osl/eval/king8.h:118
osl::eval::ml::King8EffectDefenseSquare::evalWithUpdate
static const CArray< int, 2 > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value)
Definition king8.cc:364
osl::eval::ml::King8EffectDefenseSquare::setUp
static void setUp(const Weights &weights)
Definition king8.cc:348
osl::eval::ml::King8EffectDefenseSquare::table
static CArray< int, 32 > table
Definition core/osl/eval/king8.h:119
osl::eval::ml::King8EffectDefenseSquare::eval
static const CArray< int, 2 > eval(const NumEffectState &state)
Definition king8.cc:358
osl::eval::ml::King8EffectEmptySquareBoth
Definition core/osl/eval/king8.h:97
osl::eval::ml::King8EffectEmptySquareBoth::evalWithUpdate
static std::pair< CArray< int, 2 >, CArray< int, 2 > > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value_opening, const CArray< int, 2 > &last_value_ending)
Definition king8.cc:336
osl::eval::ml::King8EffectEmptySquare
Definition core/osl/eval/king8.h:86
osl::eval::ml::King8EffectEmptySquare::eval
static const CArray< int, 2 > eval(const NumEffectState &state)
Definition king8.cc:321
osl::eval::ml::King8EffectEmptySquare::table
static table_t table
Definition core/osl/eval/king8.h:88
osl::eval::ml::King8EffectEmptySquare::evalWithUpdate
static const CArray< int, 2 > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value)
Definition king8.cc:327
osl::eval::ml::King8EffectEmptySquare::setUp
static void setUp(const Weights &weights)
Definition king8.cc:310
osl::eval::ml::King8EffectEmptySquare::King8EffectEmptySquareBoth
friend class King8EffectEmptySquareBoth
Definition core/osl/eval/king8.h:87
osl::eval::ml::King8Effect
Definition core/osl/eval/king8.h:19
osl::eval::ml::King8Effect::defense_table
static CArray< int, 32 > defense_table
Definition core/osl/eval/king8.h:34
osl::eval::ml::King8Effect::indexY
static int indexY(Piece king, const Direction dir, EffectState state)
Definition king8.cc:89
osl::eval::ml::King8Effect::empty_y_table
static CArray< int, 288 > empty_y_table
Definition core/osl/eval/king8.h:35
osl::eval::ml::King8Effect::empty_table
static CArray< int, 32 > empty_table
Definition core/osl/eval/king8.h:33
osl::eval::ml::King8Effect::setUp
static void setUp(const Weights &weights)
Definition king8.cc:17
osl::eval::ml::King8Effect::EffectState
EffectState
Definition core/osl/eval/king8.h:26
osl::eval::ml::King8Effect::MORE_EFFECT_KING_ONLY
@ MORE_EFFECT_KING_ONLY
Definition core/osl/eval/king8.h:31
osl::eval::ml::King8Effect::NOT_EMPTY
@ NOT_EMPTY
Definition core/osl/eval/king8.h:27
osl::eval::ml::King8Effect::LESS_EFFECT
@ LESS_EFFECT
Definition core/osl/eval/king8.h:29
osl::eval::ml::King8Effect::NO_EFFECT
@ NO_EFFECT
Definition core/osl/eval/king8.h:28
osl::eval::ml::King8Effect::MORE_EFFECT
@ MORE_EFFECT
Definition core/osl/eval/king8.h:30
osl::eval::ml::King8Effect::index
static int index(const Direction dir, EffectState state)
Definition king8.cc:82
osl::eval::ml::King8Effect::effectState
static void effectState(const NumEffectState &state, const Player defense, const Direction dir, EffectState &empty, EffectState &)
Definition king8.cc:101
osl::eval::ml::King8Effect::DIM
@ DIM
Definition core/osl/eval/king8.h:21
osl::eval::ml::King8Effect::defense_y_table
static CArray< int, 288 > defense_y_table
Definition core/osl/eval/king8.h:36
osl::eval::ml::KingXBlocked3Y
Definition core/osl/eval/king8.h:351
osl::eval::ml::KingXBlocked3Y::setUp
static void setUp(const Weights &weights)
Definition king8.cc:945
osl::eval::ml::KingXBlocked3Y::DIM
@ DIM
Definition core/osl/eval/king8.h:353
osl::eval::ml::KingXBlocked3Y::ONE_DIM
@ ONE_DIM
Definition core/osl/eval/king8.h:353
osl::eval::ml::KingXBlocked3
Definition core/osl/eval/king8.h:291
osl::eval::ml::KingXBlocked3::DIM
@ DIM
Definition core/osl/eval/king8.h:294
osl::eval::ml::KingXBlocked3::ONE_DIM
@ ONE_DIM
Definition core/osl/eval/king8.h:294
osl::eval::ml::KingXBlocked3::table
static CArray< MultiInt, 80 > table
Definition core/osl/eval/king8.h:346
osl::eval::ml::KingXBlocked3::y_table
static CArray< MultiInt, 720 > y_table
Definition core/osl/eval/king8.h:347
osl::eval::ml::KingXBlocked3::KingXBlocked3Y
friend class KingXBlocked3Y
Definition core/osl/eval/king8.h:292
osl::eval::ml::KingXBlocked3::setUp
static void setUp(const Weights &weights)
Definition king8.cc:936
osl::eval::ml::KingXBlocked3::adjust
static void adjust(int index_y, MultiInt &result)
Definition core/osl/eval/king8.h:299
osl::eval::ml::KingXBlocked3::indexY
static int indexY(const Square king, bool is_l, bool u_blocked, bool opp_u_blocked, bool opp_blocked)
Definition core/osl/eval/king8.h:326
osl::eval::ml::KingXBlocked3::index
static int index(const Square king, bool is_l, bool u_blocked, bool opp_u_blocked, bool opp_blocked)
Definition core/osl/eval/king8.h:307
osl::eval::ml::KingXBlockedBoth
Definition core/osl/eval/king8.h:247
osl::eval::ml::KingXBlockedBoth::evalWithUpdateBang
static void evalWithUpdateBang(const NumEffectState &new_state, Move last_move, MultiIntPair &last_values_and_out)
Definition king8.cc:916
osl::eval::ml::KingXBlockedYBase
Definition core/osl/eval/king8.h:216
osl::eval::ml::KingXBlockedYBase::table_t
CArray< MultiInt, 90 > table_t
Definition core/osl/eval/king8.h:219
osl::eval::ml::KingXBlockedYBase::evalWithUpdateBang
static void evalWithUpdateBang(const NumEffectState &state, Move laste_move, MultiIntPair &last_values_and_out)
Definition king8.cc:824
osl::eval::ml::KingXBlockedYBase::index
static int index(Square king, int diff)
Definition king8.cc:879
osl::eval::ml::KingXBlockedYBase::eval
static const MultiIntPair eval(const NumEffectState &state, const table_t &table)
Definition king8.cc:743
osl::eval::ml::KingXBlockedYBase::adjust
static void adjust(int index, int index_y, MultiInt &out)
Definition king8.cc:813
osl::eval::ml::KingXBlockedYBase::DIM
@ DIM
Definition core/osl/eval/king8.h:218
osl::eval::ml::KingXBlockedY
Definition core/osl/eval/king8.h:233
osl::eval::ml::KingXBlockedY::KingXBlockedYBase
friend class KingXBlockedYBase
Definition core/osl/eval/king8.h:235
osl::eval::ml::KingXBlockedY::KingXBlockedBoth
friend class KingXBlockedBoth
Definition core/osl/eval/king8.h:234
osl::eval::ml::KingXBlockedY::table
static table_t table
Definition core/osl/eval/king8.h:243
osl::eval::ml::KingXBlockedY::eval
static const MultiIntPair eval(const NumEffectState &state)
Definition core/osl/eval/king8.h:238
osl::eval::ml::KingXBlockedY::setUp
static void setUp(const Weights &weights, int stage)
Definition king8.cc:924
osl::eval::ml::KingXBlocked
Definition core/osl/eval/king8.h:202
osl::eval::ml::KingXBlocked::KingXBlockedYBase
friend class KingXBlockedYBase
Definition core/osl/eval/king8.h:204
osl::eval::ml::KingXBlocked::KingXBlockedBoth
friend class KingXBlockedBoth
Definition core/osl/eval/king8.h:203
osl::eval::ml::KingXBlocked::eval
static MultiIntPair eval(const NumEffectState &state)
Definition core/osl/eval/king8.h:207
osl::eval::ml::KingXBlocked::setUp
static void setUp(const Weights &weights, int stage)
Definition king8.cc:907
osl::eval::ml::KingXBlocked::table
static table_t table
Definition core/osl/eval/king8.h:212
osl::eval::ml::KingXBothBlockedY
Definition core/osl/eval/king8.h:280
osl::eval::ml::KingXBothBlockedY::KingXBlockedYBase
friend class KingXBlockedYBase
Definition core/osl/eval/king8.h:281
osl::eval::ml::KingXBothBlockedY::KingXBothBlocked
friend class KingXBothBlocked
Definition core/osl/eval/king8.h:282
osl::eval::ml::KingXBothBlockedY::table
static CArray< MultiInt, ONE_DIM > table
Definition core/osl/eval/king8.h:287
osl::eval::ml::KingXBothBlockedY::setUp
static void setUp(const Weights &weights)
Definition king8.cc:613
osl::eval::ml::KingXBothBlockedY::ONE_DIM
@ ONE_DIM
Definition core/osl/eval/king8.h:284
osl::eval::ml::KingXBothBlockedY::DIM
@ DIM
Definition core/osl/eval/king8.h:284
osl::eval::ml::KingXBothBlocked
Definition core/osl/eval/king8.h:255
osl::eval::ml::KingXBothBlocked::adjust
static void adjust(int index, int index_y, MultiInt &out)
Definition king8.cc:625
osl::eval::ml::KingXBothBlocked::KingXBlockedYBase
friend class KingXBlockedYBase
Definition core/osl/eval/king8.h:256
osl::eval::ml::KingXBothBlocked::indexY
static int indexY(const Square king)
Definition core/osl/eval/king8.h:269
osl::eval::ml::KingXBothBlocked::table
static CArray< MultiInt, ONE_DIM > table
Definition core/osl/eval/king8.h:262
osl::eval::ml::KingXBothBlocked::setUp
static void setUp(const Weights &weights)
Definition king8.cc:603
osl::eval::ml::KingXBothBlocked::ONE_DIM
@ ONE_DIM
Definition core/osl/eval/king8.h:258
osl::eval::ml::KingXBothBlocked::DIM
@ DIM
Definition core/osl/eval/king8.h:258
osl::eval::ml::KingXBothBlocked::index
static int index(const Square king)
Definition core/osl/eval/king8.h:263
evalStagePair.h
king8Info.h
osl::eval::ml
Definition eval_pieceStand.cc:470
osl::eval::ml::EffectState
EffectState
Definition kingTable.h:499
osl::eval
Definition eval_pieceStand.cc:468
osl
Definition additionalEffect.h:6
osl::MultiIntPair
QuadIntPair MultiIntPair
Definition midgame.h:14
osl::Direction
Direction
Definition basic_type.h:310
osl::MultiInt
QuadInt MultiInt
Definition midgame.h:13
osl::Player
Player
Definition basic_type.h:8
osl::WHITE
@ WHITE
Definition basic_type.h:10
osl::BLACK
@ BLACK
Definition basic_type.h:9
osl::EvalStages
const int EvalStages
Definition midgame.h:12
numEffectState.h
osl::eval::ml::King8EffectBase::MakeEffectStateDefense
Definition king8.cc:180
osl::eval::ml::King8EffectBase::MakeEffectStateSimple
Definition king8.cc:153
osl::eval::ml::King8EffectDefenseSquareEnding
Definition core/osl/eval/king8.h:141
osl::eval::ml::King8EffectDefenseSquareOpening
Definition core/osl/eval/king8.h:137
osl::eval::ml::King8EffectEmptySquareEnding
Definition core/osl/eval/king8.h:110
osl::eval::ml::King8EffectEmptySquareOpening
Definition core/osl/eval/king8.h:106
osl::eval::ml::KingXBlockedBase
Definition core/osl/eval/king8.h:181
osl::eval::ml::KingXBlockedBase::table_t
CArray< MultiInt, 10 > table_t
Definition core/osl/eval/king8.h:183
osl::eval::ml::KingXBlockedBase::isBlocked
static bool isBlocked(const NumEffectState &state, int diff)
Definition king8.cc:692
osl::eval::ml::KingXBlockedBase::index
static int index(Square king, int diff)
Definition king8.cc:669
osl::eval::ml::KingXBlockedBase::eval
static const MultiIntPair eval(const NumEffectState &state, const table_t &table)
Definition king8.cc:724
osl::eval::ml::KingXBlockedBase::DIM
@ DIM
Definition core/osl/eval/king8.h:182
osl::eval::ml::Weights
Definition weights.h:18
weights.h