lbfgs-0.1: Numeric/LBFGS/Types.hs
-- |
-- Module : Numeric.LBFGS.Types
-- Copyright : (c) 2010 Daniël de Kok, 2016 Ian-Woo.Kim
-- License : Apache 2
--
--
-- Maintainer : Daniël de Kok <me@danieldk.eu>
-- 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