Now OW-LQN method is available only with backtracking linesearch methods.

git-svn-id: file:///home/svnrepos/software/liblbfgs/trunk@46 ecf4c44f-38d1-4fa4-9757-a0b4dd0349fc
This commit is contained in:
naoaki 2009-02-16 13:41:27 +00:00
parent 1b33e075df
commit 25e895b4e5

View File

@ -357,18 +357,30 @@ int lbfgs(
if (n < param.orthantwise_end) { if (n < param.orthantwise_end) {
return LBFGSERR_INVALID_ORTHANTWISE_END; return LBFGSERR_INVALID_ORTHANTWISE_END;
} }
switch (param.linesearch) { if (param.orthantwise_c != 0.) {
case LBFGS_LINESEARCH_MORETHUENTE: switch (param.linesearch) {
linesearch = line_search_morethuente; case LBFGS_LINESEARCH_MORETHUENTE:
break; return LBFGSERR_INVALID_LINESEARCH;
case LBFGS_LINESEARCH_BACKTRACKING: case LBFGS_LINESEARCH_BACKTRACKING:
case LBFGS_LINESEARCH_BACKTRACKING_STRONG: case LBFGS_LINESEARCH_BACKTRACKING_STRONG:
linesearch = line_search_backtracking; linesearch = line_search_backtracking_owlqn;
break; break;
default: default:
return LBFGSERR_INVALID_LINESEARCH; return LBFGSERR_INVALID_LINESEARCH;
}
} else {
switch (param.linesearch) {
case LBFGS_LINESEARCH_MORETHUENTE:
linesearch = line_search_morethuente;
break;
case LBFGS_LINESEARCH_BACKTRACKING:
case LBFGS_LINESEARCH_BACKTRACKING_STRONG:
linesearch = line_search_backtracking;
break;
default:
return LBFGSERR_INVALID_LINESEARCH;
}
} }
linesearch = line_search_backtracking_owlqn;
/* Allocate working space. */ /* Allocate working space. */
xp = (lbfgsfloatval_t*)vecalloc(n * sizeof(lbfgsfloatval_t)); xp = (lbfgsfloatval_t*)vecalloc(n * sizeof(lbfgsfloatval_t));