#include <progress.h>
Public Types | |
enum | { ProgressScale = 2 } |
Public Member Functions | |
NewProgress (const NumEffectState &state) | |
int | progress () const |
template<Player P> | |
void | updateSub (const NumEffectState &new_state, Move last_move) |
void | update (const NumEffectState &new_state, Move last_move) |
NewProgressDebugInfo | debugInfo () const |
const Progress16 | progress16 () const |
const Progress16 | progress16 (Player p) const |
const Progress16 | progressAttack (Player p) const |
const Progress16 | progressDefense (Player p) const |
const NewProgressData | rawData () const |
Static Public Member Functions | |
static int | maxProgress () |
static bool | initialized () |
static bool | setUp (const char *filename) |
static bool | setUp () |
static std::string | defaultFilename () |
Private Member Functions | |
void | updatePieceKingRelativeBonus (const NumEffectState &state) |
void | updateNonPawnAttackedPtypePair (const NumEffectState &state) |
template<Player Owner> | |
void | updateNonPawnAttackedPtypePairOne (const NumEffectState &state) |
void | updatePawnFacing (const NumEffectState &state) |
template<Player Attack> | |
void | promotion37One (const NumEffectState &state, int rank) |
void | updatePromotion37 (const NumEffectState &state) |
void | updatePieceStand7 (const NumEffectState &state) |
template<Player P> | |
void | updateAttack5x5PiecesAndState (const NumEffectState &state) |
template<Player P> | |
void | updateAttack5x5Pieces (PieceMask, const NumEffectState &) |
template<Player P> | |
int | attack5x5Value (const NumEffectState &state) const |
template<Player P> | |
void | updateMain (const NumEffectState &new_state, Move last_move) |
Static Private Member Functions | |
template<Player P> | |
static void | progressOne (const NumEffectState &state, int &attack, int &defense) |
template<Player P> | |
static int | index (Square king, Square target) |
template<Player P> | |
static int | indexX (Square king, Square target) |
template<Player P> | |
static int | indexY (Square king, Square target) |
static int | index5x5 (int rook, int bishop, int gold, int silver, int promoted) |
static int | index5x5x (int rook, int bishop, int gold, int silver, int promoted, int king_x) |
static int | index5x5y (int rook, int bishop, int gold, int silver, int promoted, int king_y) |
template<Player P> | |
static int | indexPerEffect (Square king, Square target, int count) |
template<Player P> | |
static int | indexPerEffectY (Square king, Square target, int count) |
template<Player P> | |
static int | indexPerEffectX (Square king, Square target, int count) |
template<Player P> | |
static int | indexRelative (const Square king, const Ptype ptype, const Square pos) |
static int | indexRelative (const Player player, const Square king, const Piece piece) |
Static Private Attributes | |
static bool | initialized_flag |
static CArray< int, Piece::SIZE > | stand_weight |
static CArray< int, 1125 > | attack5x5_weight |
static CArray< int, 5625 > | attack5x5_x_weight |
static CArray< int, 10125 > | attack5x5_y_weight |
static CArray< int, 75 > | effectstate_weight |
static CArray< int, 81 *15 *10 > | attack_relative |
static CArray< int, 81 *15 *10 > | defense_relative |
static CArray< int, 4284 > | king_relative_weight |
static CArray< int, 262144 > | attacked_ptype_pair_weight |
static CArray< int, 10 > | pawn_facing_weight |
static CArray< int, 16 > | promotion37_weight |
static CArray< int, 56 > | piecestand7_weight |
static int | max_progress |
Additional Inherited Members | |
![]() | |
CArray< MultiInt, 2 > | non_pawn_ptype_attacked_pair_eval |
MultiInt | promotion37_eval |
CArray< int, 2 > | progresses |
CArray< int, 2 > | attack5x5_progresses |
CArray< int, 2 > | stand_progresses |
CArray< int, 2 > | effect_progresses |
CArray< int, 2 > | defenses |
CArray< int, 2 > | rook |
CArray< int, 2 > | bishop |
CArray< int, 2 > | gold |
CArray< int, 2 > | silver |
CArray< int, 2 > | promoted |
CArray< int, 2 > | king_relative_attack |
CArray< int, 2 > | king_relative_defense |
CArray< int, 2 > | non_pawn_ptype_attacked_pair |
int | pawn_facing |
int | promotion37 |
int | piecestand7 |
Definition at line 75 of file progress.h.
anonymous enum |
Enumerator | |
---|---|
ProgressScale |
Definition at line 78 of file progress.h.
osl::progress::ml::NewProgress::NewProgress | ( | const NumEffectState & | state | ) |
Definition at line 546 of file progress.cc.
References osl::progress::ml::NewProgressData::attack5x5_progresses, osl::BLACK, osl::progress::ml::NewProgressData::defenses, osl::CArray< T, Capacity >::fill(), osl::PtypeTable::getIndexMin(), initialized_flag, osl::PieceStand::order, osl::progress::ml::NewProgressData::progresses, osl::Ptype_Table, osl::progress::ml::NewProgressData::stand_progresses, stand_weight, updateNonPawnAttackedPtypePair(), updatePawnFacing(), updatePieceKingRelativeBonus(), updatePieceStand7(), updatePromotion37(), and osl::WHITE.
|
private |
Definition at line 386 of file progress.cc.
References osl::alt(), attack5x5_x_weight, attack5x5_y_weight, osl::progress::ml::NewProgressData::bishop, osl::BISHOP, osl::BLACK, osl::SimpleState::countPiecesOnStand(), osl::progress::ml::NewProgressData::gold, osl::GOLD, index5x5x(), index5x5y(), osl::SimpleState::kingSquare(), osl::progress::ml::NewProgressData::promoted, osl::progress::ml::NewProgressData::rook, osl::ROOK, osl::progress::ml::NewProgressData::silver, and osl::SILVER.
osl::progress::ml::NewProgressDebugInfo osl::progress::ml::NewProgress::debugInfo | ( | ) | const |
Definition at line 726 of file progress.cc.
References osl::progress::ml::NewProgressDebugInfo::ATTACK5X5, osl::progress::ml::NewProgressData::attack5x5_progresses, osl::progress::ml::NewProgressDebugInfo::ATTACK_5X3, osl::progress::ml::NewProgressDebugInfo::black_values, osl::progress::ml::NewProgressDebugInfo::DEFENSE_5X3, osl::progress::ml::NewProgressData::defenses, osl::progress::ml::NewProgressDebugInfo::EFFECT5X5, osl::progress::ml::NewProgressData::effect_progresses, osl::progress::ml::NewProgressDebugInfo::KING_RELATIVE_ATTACK, osl::progress::ml::NewProgressData::king_relative_attack, osl::progress::ml::NewProgressDebugInfo::KING_RELATIVE_DEFENSE, osl::progress::ml::NewProgressData::king_relative_defense, osl::progress::ml::NewProgressDebugInfo::NON_PAWN_ATTACKED_PAIR, osl::progress::ml::NewProgressData::non_pawn_ptype_attacked_pair, osl::progress::ml::NewProgressData::progresses, osl::progress::ml::NewProgressDebugInfo::STAND, osl::progress::ml::NewProgressData::stand_progresses, and osl::progress::ml::NewProgressDebugInfo::white_values.
|
static |
Definition at line 288 of file progress.cc.
References osl::OslConfig::home().
Referenced by osl::OslConfig::healthCheck(), and setUp().
|
inlinestaticprivate |
Definition at line 113 of file progress.h.
References osl::BLACK, osl::Square::x(), and osl::Square::y().
Referenced by updateAttack5x5PiecesAndState().
|
inlinestaticprivate |
Definition at line 146 of file progress.h.
|
inlinestaticprivate |
Definition at line 152 of file progress.h.
Referenced by attack5x5Value().
|
inlinestaticprivate |
Definition at line 159 of file progress.h.
Referenced by attack5x5Value().
|
inlinestaticprivate |
Definition at line 167 of file progress.h.
References osl::BLACK, osl::eval::min(), osl::Square::x(), and osl::Square::y().
|
inlinestaticprivate |
Definition at line 187 of file progress.h.
References osl::BLACK, osl::eval::min(), osl::WHITE, osl::Square::x(), and osl::Square::y().
|
inlinestaticprivate |
Definition at line 177 of file progress.h.
References osl::BLACK, osl::eval::min(), osl::Square::x(), and osl::Square::y().
|
inlinestaticprivate |
Definition at line 201 of file progress.h.
References osl::BLACK, osl::PTYPE_PIECE_MIN, osl::Square::x(), and osl::Square::y().
Referenced by updatePieceKingRelativeBonus().
|
inlinestaticprivate |
Definition at line 209 of file progress.h.
References osl::BLACK, osl::Piece::ptype(), and osl::Piece::square().
|
inlinestaticprivate |
Definition at line 121 of file progress.h.
References osl::BLACK, osl::WHITE, osl::Square::x(), and osl::Square::y().
|
inlinestaticprivate |
Definition at line 138 of file progress.h.
References osl::BLACK, osl::Square::x(), and osl::Square::y().
|
inlinestatic |
Definition at line 304 of file progress.h.
|
inlinestatic |
Definition at line 243 of file progress.h.
Referenced by osl::eval::ml::OpenMidEndingEval::composeOpenMidEndgame(), osl::eval::ml::OpenMidEndingEval::expect(), osl::eval::ml::OpenMidEndingEval::infty(), osl::eval::ml::OpenMidEndingEval::progressMax(), and osl::eval::ml::OpenMidEndingEval::seeScale().
|
inline |
Definition at line 225 of file progress.h.
References osl::eval::max(), and osl::eval::min().
Referenced by osl::eval::ml::OpenMidEndingEval::composeOpenMidEndgame(), osl::eval::ml::OpenMidEndingEval::expect(), and osl::eval::ml::OpenMidEndingEval::progressValue().
|
inline |
Definition at line 257 of file progress.h.
References osl::progress::ProgressN< N >::progress.
Referenced by osl::eval::ml::OpenMidEndingEval::expect(), osl::eval::ml::OpenMidEndingEval::progress16(), and osl::eval::ml::OpenMidEndingEval::progress32().
|
inline |
Definition at line 261 of file progress.h.
References osl::alt(), osl::eval::max(), osl::eval::min(), and osl::playerToIndex().
|
inline |
Definition at line 278 of file progress.h.
References osl::alt(), osl::eval::max(), and osl::eval::min().
|
inline |
Definition at line 292 of file progress.h.
References osl::alt(), osl::eval::max(), and osl::eval::min().
|
staticprivate |
Definition at line 296 of file progress.cc.
References osl::Centering5x3::adjustCenter(), osl::alt(), attack_relative, osl::BLACK, osl::NumEffectState::countEffect(), defense_relative, osl::SimpleState::kingSquare(), osl::eval::min(), osl::Square::rotate180(), osl::WHITE, osl::Square::x(), and osl::Square::y().
|
private |
Definition at line 492 of file progress.cc.
References osl::alt(), osl::NumEffectState::countEffect(), osl::NumEffectState::findCheapAttack(), osl::effect_util::AdditionalEffect::hasEffect(), osl::isPiece(), osl::isPromoted(), osl::progress::ml::NewProgressData::promotion37, osl::progress::ml::NewProgressData::promotion37_eval, promotion37_weight, osl::Piece::ptype(), osl::PTYPE_BASIC_MIN, osl::PTYPE_MAX, osl::sign(), and updatePromotion37().
Referenced by updatePawnFacing().
|
inline |
Definition at line 311 of file progress.h.
References osl::progress::operator==().
Referenced by osl::progress::ml::operator==(), and osl::eval::ml::OpenMidEndingEval::updateSub().
|
static |
Definition at line 54 of file progress.cc.
References osl::Centering5x3::adjustCenter(), attack5x5_weight, attack5x5_x_weight, attack5x5_y_weight, attack_relative, attacked_ptype_pair_weight, osl::progress::ml::NewProgressData::bishop, defense_relative, osl::eval::ml::Weights::dimension(), effectstate_weight, osl::progress::ml::NewProgressData::gold, osl::eval::ml::NonPawnAttackedPtypePair::index2(), initialized_flag, king_relative_weight, max_progress, pawn_facing_weight, piecestand7_weight, ProgressScale, osl::progress::ml::NewProgressData::promoted, promotion37_weight, osl::PTYPE_SIZE, osl::eval::ml::Weights::resetDimension(), osl::progress::ml::NewProgressData::rook, osl::progress::ml::NewProgressData::silver, osl::Piece::SIZE, stand_weight, osl::Square::x(), and osl::Square::y().
|
static |
Definition at line 283 of file progress.cc.
References defaultFilename().
Referenced by osl::OslConfig::healthCheck(), and osl::OslConfig::setUp().
|
inline |
Definition at line 246 of file progress.h.
References osl::BLACK, and osl::SimpleState::turn().
Referenced by osl::eval::ml::OpenMidEndingEval::updateSub().
|
private |
Definition at line 367 of file progress.cc.
References osl::alt(), osl::progress::ml::NewProgressData::bishop, osl::BISHOP, osl::PieceMask::clearBit(), osl::container::PieceMask64::countBit(), osl::progress::ml::NewProgressData::gold, osl::GOLD, osl::eval::min(), osl::NumEffectState::piecesOnBoard(), osl::progress::ml::NewProgressData::promoted, osl::NumEffectState::promotedPieces(), osl::progress::ml::NewProgressData::rook, osl::ROOK, osl::PieceMask::selectBit(), and osl::progress::ml::NewProgressData::silver.
|
private |
Definition at line 336 of file progress.cc.
References osl::alt(), osl::effect::NumBitmapEffect::countEffect(), osl::progress::ml::NewProgressData::effect_progresses, osl::NumEffectState::effectSetAt(), effectstate_weight, index(), osl::SimpleState::kingSquare(), osl::eval::max(), osl::eval::min(), osl::WHITE, osl::Square::x(), and osl::Square::y().
|
inlineprivate |
Definition at line 590 of file progress.cc.
References osl::alt(), osl::container::BoardMask::anyInRange(), osl::BLACK, osl::container::Board_Mask_Table5x3_Center, osl::captured(), osl::Move::capturePtype(), osl::NumEffectState::changedEffects(), osl::SimpleState::countPiecesOnStand(), osl::progress::ml::NewProgressData::defenses, osl::Move::from(), osl::PtypeTable::getIndexMin(), osl::Move::isDrop(), osl::KING, osl::progress::ml::NewProgressData::king_relative_attack, osl::progress::ml::NewProgressData::king_relative_defense, king_relative_weight, osl::SimpleState::kingSquare(), osl::container::BoardMaskTable5x3Center::mask(), osl::Move::oldPtype(), osl::Move::player(), osl::progress::ml::NewProgressData::progresses, osl::Move::ptype(), osl::PTYPE_EMPTY, osl::Ptype_Table, osl::progress::ml::NewProgressData::stand_progresses, stand_weight, osl::Move::to(), osl::SimpleState::turn(), osl::unpromote(), updateNonPawnAttackedPtypePair(), updatePawnFacing(), updatePieceKingRelativeBonus(), updatePieceStand7(), updatePromotion37(), and osl::WHITE.
|
private |
Definition at line 469 of file progress.cc.
References updatePawnFacing().
Referenced by NewProgress(), updateMain(), and updateNonPawnAttackedPtypePairOne().
|
private |
Definition at line 436 of file progress.cc.
References osl::alt(), osl::PieceMask::any(), attacked_ptype_pair_weight, osl::BLACK, osl::PieceMask::clearBit(), osl::NumEffectState::effectedMask(), osl::PieceMask::getMask(), osl::SimpleState::kingPiece(), osl::progress::ml::NewProgressData::non_pawn_ptype_attacked_pair, osl::progress::ml::NewProgressData::non_pawn_ptype_attacked_pair_eval, osl::Piece::number(), osl::PieceMask::orMask(), osl::PAWN, osl::SimpleState::pieceOf(), osl::NumEffectState::piecesOnBoard(), osl::NumEffectState::promotedPieces(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::PieceMask::reset(), osl::PieceMask::selectBit(), osl::FixedCapacityVector< T, Capacity >::size(), osl::container::PieceMask64::takeOneBit(), and updateNonPawnAttackedPtypePair().
Referenced by updatePieceKingRelativeBonus().
|
private |
Definition at line 476 of file progress.cc.
References osl::BLACK, osl::NumEffectState::effectedMask(), osl::PieceMask::getMask(), osl::NumEffectState::hasEffectByPtypeStrict(), osl::PAWN, osl::progress::ml::NewProgressData::pawn_facing, pawn_facing_weight, osl::SimpleState::pieceOf(), osl::NumEffectState::piecesOnBoard(), osl::NumEffectState::promotedPieces(), promotion37One(), osl::PieceMask::selectBit(), osl::Piece::square(), and osl::WHITE.
Referenced by NewProgress(), updateMain(), and updateNonPawnAttackedPtypePair().
|
private |
Definition at line 410 of file progress.cc.
References osl::alt(), osl::BLACK, osl::CArray< T, Capacity >::fill(), indexRelative(), osl::Piece::isOnBoard(), osl::KING, osl::progress::ml::NewProgressData::king_relative_attack, osl::progress::ml::NewProgressData::king_relative_defense, king_relative_weight, osl::SimpleState::kingSquare(), osl::Piece::owner(), osl::SimpleState::pieceOf(), osl::Piece::ptype(), osl::Piece::SIZE, updateNonPawnAttackedPtypePairOne(), and osl::WHITE.
Referenced by NewProgress(), and updateMain().
|
private |
Definition at line 532 of file progress.cc.
References osl::SimpleState::hasPieceOnStand(), osl::indexToPlayer(), osl::eval::min(), osl::PieceStand::order, osl::progress::ml::NewProgressData::piecestand7, piecestand7_weight, and osl::PTYPE_BASIC_MIN.
Referenced by NewProgress(), updateMain(), and updatePromotion37().
|
private |
Definition at line 523 of file progress.cc.
References osl::progress::ml::NewProgressData::promotion37, osl::progress::ml::NewProgressData::promotion37_eval, and updatePieceStand7().
Referenced by NewProgress(), promotion37One(), and updateMain().
void osl::progress::ml::NewProgress::updateSub | ( | const NumEffectState & | new_state, |
Move | last_move | ||
) |
Definition at line 684 of file progress.cc.
References osl::alt(), osl::container::BoardMask::anyInRange(), osl::progress::ml::NewProgressData::attack5x5_progresses, osl::BLACK, osl::container::Board_Mask_Table5x5, osl::captured(), osl::Move::capturePtype(), osl::NumEffectState::changedEffects(), osl::Move::isDrop(), osl::Move::isPass(), osl::KING, osl::SimpleState::kingSquare(), osl::container::BoardMaskTable5x5::mask(), osl::Move::ptype(), osl::PTYPE_EMPTY, osl::SimpleState::turn(), and osl::WHITE.
Referenced by osl::eval::ml::OpenMidEndingEval::updateSub().
|
staticprivate |
Definition at line 82 of file progress.h.
Referenced by osl::progress::ml::operator==(), and setUp().
|
staticprivate |
Definition at line 83 of file progress.h.
Referenced by attack5x5Value(), osl::progress::ml::operator==(), and setUp().
|
staticprivate |
Definition at line 84 of file progress.h.
Referenced by attack5x5Value(), osl::progress::ml::operator==(), and setUp().
|
staticprivate |
Definition at line 86 of file progress.h.
Referenced by osl::progress::ml::operator==(), progressOne(), and setUp().
|
staticprivate |
Definition at line 89 of file progress.h.
Referenced by osl::progress::ml::operator==(), setUp(), and updateNonPawnAttackedPtypePairOne().
|
staticprivate |
Definition at line 87 of file progress.h.
Referenced by osl::progress::ml::operator==(), progressOne(), and setUp().
|
staticprivate |
Definition at line 85 of file progress.h.
Referenced by osl::progress::ml::operator==(), setUp(), and updateAttack5x5PiecesAndState().
|
staticprivate |
Definition at line 80 of file progress.h.
Referenced by NewProgress(), osl::progress::ml::operator==(), and setUp().
|
staticprivate |
Definition at line 88 of file progress.h.
Referenced by osl::progress::ml::operator==(), setUp(), updateMain(), and updatePieceKingRelativeBonus().
|
staticprivate |
Definition at line 93 of file progress.h.
Referenced by osl::progress::ml::operator==(), and setUp().
|
staticprivate |
Definition at line 90 of file progress.h.
Referenced by osl::progress::ml::operator==(), setUp(), and updatePawnFacing().
|
staticprivate |
Definition at line 92 of file progress.h.
Referenced by osl::progress::ml::operator==(), setUp(), and updatePieceStand7().
|
staticprivate |
Definition at line 91 of file progress.h.
Referenced by osl::progress::ml::operator==(), promotion37One(), and setUp().
|
staticprivate |
Definition at line 81 of file progress.h.
Referenced by NewProgress(), osl::progress::ml::operator==(), setUp(), and updateMain().