class RaveDescender extends AbstractDescender {

	@Override
	public float searchValue(SearchNode node, short move) {
		if (node.getWinRate(move) < 0.0f) {
			return NEGATIVE_INFINITY;
		}
		if (move == PASS) {
			return node.getWinRate(move);
		}
		final RaveNode raveNode = (RaveNode) node;
		final float c = raveNode.getRuns(move);
		final float r = raveNode.getWinRate(move);
		final float rc = raveNode.getRaveRuns(move);
		final float rr = raveNode.getRaveWinRate(move);
		final float coef = raveCoefficient(c, rc);
		return r * (1 - coef) + rr * coef;
	}

	public  RaveDescender(Board board, TranspositionTable table, int biasDelay);

}