vector<Equity> Evaluator::evalHoldemRanges(const vector<Range>& ranges, const CardSet& board, const CardSet& dead) { int numPlayers = ranges.size(); vector<Equity> equities(numPlayers); if (board.id() & dead.id()) { return equities; } size_t usedIds = board.id() | dead.id(); int handRank = Card::MAX_ID + 1; for (const auto& card : board.ToCards()) { handRank = handRanks[handRank + card.id()]; } evalHoldemRangesHelper(equities, board.ToCards().size(), 1, handRank, usedIds, ranges); return equities; }