Skip to content

Commit aaa7bb6

Browse files
authoredNov 21, 2022
Merge pull request #32 from SciNim/exportLinesearch
export linesearch and test it
2 parents 856c10a + 8883cbd commit aaa7bb6

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed
 

‎src/numericalnim/optimize.nim

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ proc secant*(f: proc(x: float64): float64, start: array[2, float64], precision:
130130
## Multidimensional methods ##
131131
##############################
132132

133-
type LineSearchCriterion = enum
133+
type LineSearchCriterion* = enum
134134
Armijo, Wolfe, WolfeStrong, NoLineSearch
135135

136136
type

‎tests/test_optimize.nim

+7
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ suite "Multi-dim":
122122
for x in abs(correct - xSol):
123123
check x < 7e-10
124124

125+
test "Line Search options":
126+
for ls in LineSearchCriterion:
127+
let op = lbfgsOptions[float](lineSearchCriterion=ls)
128+
let xSol = lbfgs(bananaFunc, x0.clone, options=op, analyticGradient=bananaBend)
129+
for x in abs(correct - xSol):
130+
check x < 7e-8
131+
125132
let correctParams = [10.4, -0.45].toTensor()
126133
proc fitFunc(params: Tensor[float], x: float): float =
127134
params[0] * exp(params[1] * x)

0 commit comments

Comments
 (0)