diff --git a/SearchParams.scala b/SearchParams.scala new file mode 100644 index 0000000..1b74b08 --- /dev/null +++ b/SearchParams.scala @@ -0,0 +1,45 @@ +package gambit + +object SearchParams: + val reverseFutilityDepth = 6 + val reverseFutilityMargin = 80 + + val razorDepth = 3 + val razorMargin: Array[Int] = Array(0, 240, 300, 520) + + val futilityDepth = 6 + val futilityMargin = 90 + + val lmpDepth = 6 + val lmpBase: Array[Array[Int]] = + val out = Array.ofDim[Int](2, lmpDepth + 1) + var d = 0 + while d <= lmpDepth do + out(0)(d) = (3 + d * d) / 2 + out(1)(d) = 3 + d * d + d += 1 + out + + val lmrMinIndex = 3 + val lmrMinDepth = 3 + val lmrTable: Array[Array[Int]] = + val maxDepth = 64 + val maxMoves = 64 + val out = Array.ofDim[Int](maxDepth + 1, maxMoves + 1) + var d = 1 + while d <= maxDepth do + var m = 1 + while m <= maxMoves do + val r = 0.75 + math.log(d) * math.log(m) / 2.25 + out(d)(m) = math.max(0, r.toInt) + m += 1 + d += 1 + out + + def lmrReduction(depth: Int, moveIndex: Int): Int = + val d = math.min(depth, 64) + val m = math.min(moveIndex, 64) + lmrTable(d)(m) + + val seeQuietMargin = -20 + val deltaMargin = 120