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 *g,
|
||||||
lbfgsfloatval_t *s,
|
lbfgsfloatval_t *s,
|
||||||
lbfgsfloatval_t *stp,
|
lbfgsfloatval_t *stp,
|
||||||
|
const lbfgsfloatval_t* xp,
|
||||||
|
const lbfgsfloatval_t* gp,
|
||||||
lbfgsfloatval_t *wa,
|
lbfgsfloatval_t *wa,
|
||||||
callback_data_t *cd,
|
callback_data_t *cd,
|
||||||
const lbfgs_parameter_t *param
|
const lbfgs_parameter_t *param
|
||||||
@ -138,6 +140,8 @@ static int line_search_backtracking_loose(
|
|||||||
lbfgsfloatval_t *g,
|
lbfgsfloatval_t *g,
|
||||||
lbfgsfloatval_t *s,
|
lbfgsfloatval_t *s,
|
||||||
lbfgsfloatval_t *stp,
|
lbfgsfloatval_t *stp,
|
||||||
|
const lbfgsfloatval_t* xp,
|
||||||
|
const lbfgsfloatval_t* gp,
|
||||||
lbfgsfloatval_t *wa,
|
lbfgsfloatval_t *wa,
|
||||||
callback_data_t *cd,
|
callback_data_t *cd,
|
||||||
const lbfgs_parameter_t *param
|
const lbfgs_parameter_t *param
|
||||||
@ -150,7 +154,9 @@ static int line_search_backtracking_strong_wolfe(
|
|||||||
lbfgsfloatval_t *g,
|
lbfgsfloatval_t *g,
|
||||||
lbfgsfloatval_t *s,
|
lbfgsfloatval_t *s,
|
||||||
lbfgsfloatval_t *stp,
|
lbfgsfloatval_t *stp,
|
||||||
lbfgsfloatval_t *xp,
|
const lbfgsfloatval_t* xp,
|
||||||
|
const lbfgsfloatval_t* gp,
|
||||||
|
lbfgsfloatval_t *wa,
|
||||||
callback_data_t *cd,
|
callback_data_t *cd,
|
||||||
const lbfgs_parameter_t *param
|
const lbfgs_parameter_t *param
|
||||||
);
|
);
|
||||||
@ -162,6 +168,8 @@ static int line_search_morethuente(
|
|||||||
lbfgsfloatval_t *g,
|
lbfgsfloatval_t *g,
|
||||||
lbfgsfloatval_t *s,
|
lbfgsfloatval_t *s,
|
||||||
lbfgsfloatval_t *stp,
|
lbfgsfloatval_t *stp,
|
||||||
|
const lbfgsfloatval_t* xp,
|
||||||
|
const lbfgsfloatval_t* gp,
|
||||||
lbfgsfloatval_t *wa,
|
lbfgsfloatval_t *wa,
|
||||||
callback_data_t *cd,
|
callback_data_t *cd,
|
||||||
const lbfgs_parameter_t *param
|
const lbfgs_parameter_t *param
|
||||||
@ -440,7 +448,7 @@ int lbfgs(
|
|||||||
veccpy(gp, g, n);
|
veccpy(gp, g, n);
|
||||||
|
|
||||||
/* Search for an optimal step. */
|
/* 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) {
|
if (ls < 0) {
|
||||||
ret = ls;
|
ret = ls;
|
||||||
goto lbfgs_exit;
|
goto lbfgs_exit;
|
||||||
@ -616,7 +624,9 @@ static int line_search_backtracking_loose(
|
|||||||
lbfgsfloatval_t *g,
|
lbfgsfloatval_t *g,
|
||||||
lbfgsfloatval_t *s,
|
lbfgsfloatval_t *s,
|
||||||
lbfgsfloatval_t *stp,
|
lbfgsfloatval_t *stp,
|
||||||
lbfgsfloatval_t *xp,
|
const lbfgsfloatval_t* xp,
|
||||||
|
const lbfgsfloatval_t* gp,
|
||||||
|
lbfgsfloatval_t *wp,
|
||||||
callback_data_t *cd,
|
callback_data_t *cd,
|
||||||
const lbfgs_parameter_t *param
|
const lbfgs_parameter_t *param
|
||||||
)
|
)
|
||||||
@ -646,9 +656,6 @@ static int line_search_backtracking_loose(
|
|||||||
finit = *f;
|
finit = *f;
|
||||||
dgtest = param->ftol * dginit;
|
dgtest = param->ftol * dginit;
|
||||||
|
|
||||||
/* Copy the value of x to the work area. */
|
|
||||||
veccpy(xp, x, n);
|
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
veccpy(x, xp, n);
|
veccpy(x, xp, n);
|
||||||
vecadd(x, s, *stp, n);
|
vecadd(x, s, *stp, n);
|
||||||
@ -700,7 +707,9 @@ static int line_search_backtracking_strong_wolfe(
|
|||||||
lbfgsfloatval_t *g,
|
lbfgsfloatval_t *g,
|
||||||
lbfgsfloatval_t *s,
|
lbfgsfloatval_t *s,
|
||||||
lbfgsfloatval_t *stp,
|
lbfgsfloatval_t *stp,
|
||||||
lbfgsfloatval_t *xp,
|
const lbfgsfloatval_t* xp,
|
||||||
|
const lbfgsfloatval_t* gp,
|
||||||
|
lbfgsfloatval_t *wp,
|
||||||
callback_data_t *cd,
|
callback_data_t *cd,
|
||||||
const lbfgs_parameter_t *param
|
const lbfgs_parameter_t *param
|
||||||
)
|
)
|
||||||
@ -731,9 +740,6 @@ static int line_search_backtracking_strong_wolfe(
|
|||||||
finit = *f;
|
finit = *f;
|
||||||
dgtest = param->ftol * dginit;
|
dgtest = param->ftol * dginit;
|
||||||
|
|
||||||
/* Copy the value of x to the work area. */
|
|
||||||
veccpy(xp, x, n);
|
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
veccpy(x, xp, n);
|
veccpy(x, xp, n);
|
||||||
vecadd(x, s, *stp, n);
|
vecadd(x, s, *stp, n);
|
||||||
@ -799,6 +805,8 @@ static int line_search_morethuente(
|
|||||||
lbfgsfloatval_t *g,
|
lbfgsfloatval_t *g,
|
||||||
lbfgsfloatval_t *s,
|
lbfgsfloatval_t *s,
|
||||||
lbfgsfloatval_t *stp,
|
lbfgsfloatval_t *stp,
|
||||||
|
const lbfgsfloatval_t* xp,
|
||||||
|
const lbfgsfloatval_t* gp,
|
||||||
lbfgsfloatval_t *wa,
|
lbfgsfloatval_t *wa,
|
||||||
callback_data_t *cd,
|
callback_data_t *cd,
|
||||||
const lbfgs_parameter_t *param
|
const lbfgs_parameter_t *param
|
||||||
|
Loading…
Reference in New Issue
Block a user