osl::eval::ml::BishopRookFork Class Reference

`#include <minorPiece.h>`

## Public Types

enum | { DROP_DIM = PTYPE_SIZE*PTYPE_SIZE , ONE_DIM = 2*DROP_DIM*2 , DIM = ONE_DIM * EvalStages }

## Public Member Functions

template<osl::Player Defense>
osl::MultiIntPair | evalOne (const NumEffectState &state, const PieceVector &target, std::pair< Square, int > &bishop_drop, std::pair< Square, int > &rook_drop)

## Static Public Member Functions

static const Square | isBishopForkSquare (const NumEffectState &state, Player defense, const Square a, const Square b, bool maybe_empty=false)
static const Square | isRookForkSquare (const NumEffectState &state, Player defense, const Square a, const Square b)
static int | bishopIndex (Ptype a, Ptype b)
static int | rookIndex (Ptype a, Ptype b)
static void | setUp (const Weights &weights)
template<Player Defense>
static MultiIntPair | evalOne (const NumEffectState &state, const PieceVector &target, std::pair< Square, int > &bishop_drop, std::pair< Square, int > &rook_drop)
static MultiIntPair | eval (const NumEffectState &state, CArray< std::pair< Square, int >, 2 > &bishop_drop, CArray< std::pair< Square, int >, 2 > &rook_drop)

## Static Public Attributes

static CArray< MultiInt, ONE_DIM > | table

## Static Private Member Functions

static const Square | findDropInLine (const NumEffectState &state, Player defense, const Square a, const Square b, Piece king)
static bool | testCenter (const NumEffectState &state, Player defense, const Square a, const Square b, Piece king, Square center, bool maybe_empty=false)

## Detailed Description

Definition at line 1638 of file minorPiece.h.

## Member Enumeration Documentation

## anonymous enum

anonymous enum

Enumerator
DROP_DIM |
ONE_DIM |
DIM |

Definition at line 1641 of file minorPiece.h.

## Member Function Documentation

## bishopIndex()

int osl::eval::ml::BishopRookFork::bishopIndex | ( | Ptype | a,
|  | Ptype | b )

inline static

Definition at line 1647 of file minorPiece.h.

References osl::PTYPE_SIZE.

Referenced by evalOne(), rookIndex(), and setUp().

## eval()

osl::MultiIntPair osl::eval::ml::BishopRookFork::eval | ( | const NumEffectState & | state,
|  | CArray< std::pair< Square, int >, 2 > & | bishop_drop,
|  | CArray< std::pair< Square, int >, 2 > & | rook_drop )

static

Definition at line 2607 of file minorPiece.cc.

References osl::PieceMask::any(), osl::BISHOP, osl::BLACK, osl::PieceMask::clearBit(), evalOne(), osl::SimpleState::hasPieceOnStand(), osl::KING, osl::PAWN, osl::SimpleState::pieceOf(), osl::NumEffectState::piecesOnBoard(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::ROOK, osl::PieceMask::setBit(), osl::container::PieceMask64::takeOneBit(), and osl::WHITE.

Referenced by evalOne(), osl::eval::ml::OpenMidEndingEval::OpenMidEndingEval(), and osl::eval::ml::OpenMidEndingEval::updateSub().

## evalOne() [1/2]

template<osl::Player Defense>

osl::MultiIntPair osl::eval::ml::BishopRookFork::evalOne | ( | const NumEffectState & | state,
|  | const PieceVector & | target,
|  | std::pair< Square, int > & | bishop_drop,
|  | std::pair< Square, int > & | rook_drop )

Definition at line 2541 of file minorPiece.cc.

References osl::alt(), osl::BISHOP, bishopIndex(), osl::BLACK, osl::SimpleState::hasPieceOnStand(), isBishopForkSquare(), osl::Piece::isOnBoardByOwner(), osl::Square::isPieceStand(), isRookForkSquare(), osl::Piece::ptype(), osl::ROOK, rookIndex(), osl::FixedCapacityVector< T, Capacity >::size(), osl::Piece::square(), table, and osl::WHITE.

## evalOne() [2/2]

template<Player Defense>

MultiIntPair osl::eval::ml::BishopRookFork::evalOne | ( | const NumEffectState & | state,
|  | const PieceVector & | target,
|  | std::pair< Square, int > & | bishop_drop,
|  | std::pair< Square, int > & | rook_drop )

static

References eval().

Referenced by eval().

## findDropInLine()

const osl::Square osl::eval::ml::BishopRookFork::findDropInLine | ( | const NumEffectState & | state,
|  | Player | defense,
|  | const Square | a,
|  | const Square | b,
|  | Piece | king )

inline static private

Definition at line 2460 of file minorPiece.cc.

References osl::alt(), osl::Board_Table, osl::NumEffectState::hasEffectAt(), osl::NumEffectState::hasEffectNotBy(), osl::Piece::isEmpty(), osl::Square::isPieceStand(), and osl::SimpleState::pieceAt().

Referenced by isBishopForkSquare(), and isRookForkSquare().

## isBishopForkSquare()

const osl::Square osl::eval::ml::BishopRookFork::isBishopForkSquare | ( | const NumEffectState & | state,
|  | Player | defense,
|  | const Square | a,
|  | const Square | b,
|  | bool | maybe_empty = false )

static

Definition at line 2494 of file minorPiece.cc.

References findDropInLine(), osl::SimpleState::kingPiece(), osl::CArray< T, Capacity >::size(), testCenter(), osl::Square::x(), and osl::Square::y().

Referenced by osl::move_probability::MoveInfo::adhocAdjustBishopFork(), and evalOne().

## isRookForkSquare()

const osl::Square osl::eval::ml::BishopRookFork::isRookForkSquare | ( | const NumEffectState & | state,
|  | Player | defense,
|  | const Square | a,
|  | const Square | b )

inline static

Definition at line 2521 of file minorPiece.cc.

References findDropInLine(), osl::SimpleState::kingPiece(), osl::CArray< T, Capacity >::size(), testCenter(), osl::Square::x(), and osl::Square::y().

Referenced by evalOne().

## rookIndex()

int osl::eval::ml::BishopRookFork::rookIndex | ( | Ptype | a,
|  | Ptype | b )

inline static

Definition at line 1648 of file minorPiece.h.

References bishopIndex(), and DROP_DIM.

Referenced by evalOne(), and setUp().

## setUp()

void osl::eval::ml::BishopRookFork::setUp | ( | const Weights & | weights | ) |

static

Definition at line 2443 of file minorPiece.cc.

References bishopIndex(), osl::NStages, ONE_DIM, osl::PTYPE_SIZE, rookIndex(), table, and osl::eval::ml::Weights::value().

## testCenter()

bool osl::eval::ml::BishopRookFork::testCenter | ( | const NumEffectState & | state,
|  | Player | defense,
|  | const Square | a,
|  | const Square | b,
|  | Piece | king,
|  | Square | center,
|  | bool | maybe_empty = false )

inline static private

Definition at line 2479 of file minorPiece.cc.

References osl::alt(), osl::NumEffectState::hasEffectAt(), osl::NumEffectState::hasEffectNotBy(), osl::Piece::isEmpty(), osl::SimpleState::isEmptyBetween(), and osl::SimpleState::pieceAt().

Referenced by isBishopForkSquare(), and isRookForkSquare().

## Member Data Documentation

## table

osl::CArray< osl::MultiInt, 256 *2 *2 > osl::eval::ml::BishopRookFork::table

static

Definition at line 1657 of file minorPiece.h.

Referenced by evalOne(), and setUp().

The documentation for this class was generated from the following files:

- minorPiece.h
- minorPiece.cc