-- | -- Module : Numeric.LBFGS.Types -- Copyright : (c) 2010 Daniël de Kok, 2016 Ian-Woo.Kim -- License : Apache 2 -- -- -- Maintainer : Daniël de Kok -- Stability : experimental -- module Numeric.LBFGS.Types ( LineSearchAlgorithm(..) , LBFGSParameters(..) , LBFGSResult(..) , L1NormCoefficient ) where -- | Coefficient for the L1 norm of variables. type L1NormCoefficient = Maybe Double -- | -- Various line search algorithms. Wolfe backtracking algorithms require -- a coefficient. data LineSearchAlgorithm = DefaultLineSearch | MoreThuente | BacktrackingArmijo | Backtracking | BacktrackingWolfe {coeff :: Double } | BacktrackingStrongWolfe {coeff :: Double } -- | -- Parameters for the LBFGS minimization. data LBFGSParameters = LBFGSParameters { lbfgsPast :: Maybe Int, lbfgsDelta :: Double, lbfgsLineSearch :: LineSearchAlgorithm, lbfgsL1NormCoefficient :: L1NormCoefficient } data LBFGSResult = Success | Stop | AlreadyMinimized | UnknownError | LogicError | OutOfMemory | Canceled | InvalidN | InvalidNSSE | InvalidXSSE | InvalidEpsilon | InvalidTestPeriod | InvalidDelta | InvalidLineSearch | InvalidMinStep | InvalidMaxStep | InvalidFtol | InvalidWolfe | InvalidGtol | InvalidXtol | InvalidMaxLineSearch | InvalidOrthantwise | InvalidOrthantwiseStart | InvalidOrthantwiseEnd | OutOfInterval | IncorrectTMinMax | RoundingError | MinimumStep | MaximumStep | MaximumLineSearch | MaximumIteration | WidthTooSmall | InvalidParameters | IncreaseGradient deriving (Eq, Show) defaultLBFGSParameters :: LBFGSParameters defaultLBFGSParameters = LBFGSParameters Nothing 1e-5 DefaultLineSearch Nothing