- // Draw by insufficient material (trivial draws like KK, KBK and KNK)
- if ( !pos.pieces(PAWN)
- && pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK) <= BishopValueMg)
- {
- e->evaluationFunction = &EvaluateKmmKm[pos.side_to_move()];
- return e;
- }
-
- // Minor piece endgame with at least one minor piece per side and
- // no pawns. Note that the case KmmK is already handled by KXK.
- if (!pos.pieces(PAWN) && !pos.pieces(ROOK) && !pos.pieces(QUEEN))
- {
- assert((pos.pieces(WHITE, KNIGHT) | pos.pieces(WHITE, BISHOP)));
- assert((pos.pieces(BLACK, KNIGHT) | pos.pieces(BLACK, BISHOP)));
-
- if ( pos.count<BISHOP>(WHITE) + pos.count<KNIGHT>(WHITE) <= 2
- && pos.count<BISHOP>(BLACK) + pos.count<KNIGHT>(BLACK) <= 2)
- {
- e->evaluationFunction = &EvaluateKmmKm[pos.side_to_move()];
- return e;
- }
- }
-