packages feed

turncoat-1.0: src/Search/Parameters.hs

module Search.Parameters where

import           AppPrelude           hiding ((/))
import           ClassyPrelude        ((/))

import           Models.Score

import qualified Data.Vector.Storable as Vector


futilityMargins :: Vector Score
futilityMargins = Vector.fromList
  [300, 600, 1200]


getLmrDepth :: Int -> Depth -> Depth
getLmrDepth mvIdx depth =
  min (depth - 1) lmrDepth
  where
    lmrDepth = ceiling (lmrFactor * (fromIntegral depth / 2)
                + (1 - lmrFactor) * (fromIntegral depth - 1))
    lmrFactor = min @Double 1 (fromIntegral mvIdx / 80)


initialAlpha :: Score
initialAlpha = minScore


initialBeta :: Score
initialBeta = maxScore