Files
gambit/SearchParams.scala

46 lines
1.0 KiB
Scala

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