Changed the argument type for line-search routines; preparation for OW-LQN debugging.
git-svn-id: file:///home/svnrepos/software/liblbfgs/trunk@27 ecf4c44f-38d1-4fa4-9757-a0b4dd0349fc
This commit is contained in:
parent
76c6230ece
commit
767e58a47b
28
lib/lbfgs.c
28
lib/lbfgs.c
@ -126,6 +126,8 @@ typedef int (*line_search_proc)(
|
||||
lbfgsfloatval_t *g,
|
||||
lbfgsfloatval_t *s,
|
||||
lbfgsfloatval_t *stp,
|
||||
const lbfgsfloatval_t* xp,
|
||||
const lbfgsfloatval_t* gp,
|
||||
lbfgsfloatval_t *wa,
|
||||
callback_data_t *cd,
|
||||
const lbfgs_parameter_t *param
|
||||
@ -138,6 +140,8 @@ static int line_search_backtracking_loose(
|
||||
lbfgsfloatval_t *g,
|
||||
lbfgsfloatval_t *s,
|
||||
lbfgsfloatval_t *stp,
|
||||
const lbfgsfloatval_t* xp,
|
||||
const lbfgsfloatval_t* gp,
|
||||
lbfgsfloatval_t *wa,
|
||||
callback_data_t *cd,
|
||||
const lbfgs_parameter_t *param
|
||||
@ -150,7 +154,9 @@ static int line_search_backtracking_strong_wolfe(
|
||||
lbfgsfloatval_t *g,
|
||||
lbfgsfloatval_t *s,
|
||||
lbfgsfloatval_t *stp,
|
||||
lbfgsfloatval_t *xp,
|
||||
const lbfgsfloatval_t* xp,
|
||||
const lbfgsfloatval_t* gp,
|
||||
lbfgsfloatval_t *wa,
|
||||
callback_data_t *cd,
|
||||
const lbfgs_parameter_t *param
|
||||
);
|
||||
@ -162,6 +168,8 @@ static int line_search_morethuente(
|
||||
lbfgsfloatval_t *g,
|
||||
lbfgsfloatval_t *s,
|
||||
lbfgsfloatval_t *stp,
|
||||
const lbfgsfloatval_t* xp,
|
||||
const lbfgsfloatval_t* gp,
|
||||
lbfgsfloatval_t *wa,
|
||||
callback_data_t *cd,
|
||||
const lbfgs_parameter_t *param
|
||||
@ -440,7 +448,7 @@ int lbfgs(
|
||||
veccpy(gp, g, n);
|
||||
|
||||
/* Search for an optimal step. */
|
||||
ls = linesearch(n, x, &fx, g, d, &step, w, &cd, ¶m);
|
||||
ls = linesearch(n, x, &fx, g, d, &step, xp, gp, w, &cd, ¶m);
|
||||
if (ls < 0) {
|
||||
ret = ls;
|
||||
goto lbfgs_exit;
|
||||
@ -616,7 +624,9 @@ static int line_search_backtracking_loose(
|
||||
lbfgsfloatval_t *g,
|
||||
lbfgsfloatval_t *s,
|
||||
lbfgsfloatval_t *stp,
|
||||
lbfgsfloatval_t *xp,
|
||||
const lbfgsfloatval_t* xp,
|
||||
const lbfgsfloatval_t* gp,
|
||||
lbfgsfloatval_t *wp,
|
||||
callback_data_t *cd,
|
||||
const lbfgs_parameter_t *param
|
||||
)
|
||||
@ -646,9 +656,6 @@ static int line_search_backtracking_loose(
|
||||
finit = *f;
|
||||
dgtest = param->ftol * dginit;
|
||||
|
||||
/* Copy the value of x to the work area. */
|
||||
veccpy(xp, x, n);
|
||||
|
||||
for (;;) {
|
||||
veccpy(x, xp, n);
|
||||
vecadd(x, s, *stp, n);
|
||||
@ -700,7 +707,9 @@ static int line_search_backtracking_strong_wolfe(
|
||||
lbfgsfloatval_t *g,
|
||||
lbfgsfloatval_t *s,
|
||||
lbfgsfloatval_t *stp,
|
||||
lbfgsfloatval_t *xp,
|
||||
const lbfgsfloatval_t* xp,
|
||||
const lbfgsfloatval_t* gp,
|
||||
lbfgsfloatval_t *wp,
|
||||
callback_data_t *cd,
|
||||
const lbfgs_parameter_t *param
|
||||
)
|
||||
@ -731,9 +740,6 @@ static int line_search_backtracking_strong_wolfe(
|
||||
finit = *f;
|
||||
dgtest = param->ftol * dginit;
|
||||
|
||||
/* Copy the value of x to the work area. */
|
||||
veccpy(xp, x, n);
|
||||
|
||||
for (;;) {
|
||||
veccpy(x, xp, n);
|
||||
vecadd(x, s, *stp, n);
|
||||
@ -799,6 +805,8 @@ static int line_search_morethuente(
|
||||
lbfgsfloatval_t *g,
|
||||
lbfgsfloatval_t *s,
|
||||
lbfgsfloatval_t *stp,
|
||||
const lbfgsfloatval_t* xp,
|
||||
const lbfgsfloatval_t* gp,
|
||||
lbfgsfloatval_t *wa,
|
||||
callback_data_t *cd,
|
||||
const lbfgs_parameter_t *param
|
||||
|
Loading…
Reference in New Issue
Block a user