lbfgs-0.1: L-BFGS optimization

Copyright(c) 2010 Daniël de Kok, 2016 Ian-Woo.Kim
LicenseApache 2
MaintainerDaniël de Kok <me@danieldk.eu>
Stabilityexperimental
Safe HaskellNone
LanguageHaskell98

Numeric.LBFGS.Vector

Description

 

Synopsis

Documentation

data LineSearchAlgorithm Source #

Various line search algorithms. Wolfe backtracking algorithms require a coefficient.

type EvaluateFun a Source #

Arguments

 = a

Instance data

-> IOVector CDouble

Current variables (should not be modified by the function) -- previously, StorableArray Int CDouble

-> IOVector CDouble

Gradients -- previously, StorableArray Int CDouble

-> CInt

Number of variables

-> CDouble

Step of the line search algorithm

-> IO CDouble

Value of the objective function

Type signature for the objective function and gradient evaluations.

type ProgressFun a Source #

Arguments

 = a

Instance data

-> IOVector CDouble

Variables (should not be modified by the function) -- previously, StorableArray Int CDouble

-> IOVector CDouble

Gradients (should not be modified by the function) -- previously, StorableArray Int CDouble

-> CDouble

Value of the objective function

-> CDouble

Euclidean norm of the variables

-> CDouble

Eucledian norm of the gradients

-> CDouble

Step of the line search algorithm

-> CInt

Number of variables

-> CInt

Iteration count

-> CInt

Number of evaluations for this iteration

-> IO CInt

Return zero to continue the evaluation, non-zero otherwise

Type signature for a function reporting on the progress of the optimization.

lbfgs Source #

Arguments

:: LBFGSParameters

Parameters

-> EvaluateFun a

Objective function

-> ProgressFun a

Progress report function

-> a

Instance data

-> [Double]

Initial variable values

-> IO (LBFGSResult, [Double])

Result and variable values

Start a L-BFGS optimization. The initial variables should be provided as a list of doubles.