Last minutes' change.

git-svn-id: file:///home/svnrepos/software/liblbfgs/trunk@16 ecf4c44f-38d1-4fa4-9757-a0b4dd0349fc
This commit is contained in:
naoaki 2008-07-09 15:41:37 +00:00
parent b9e4aac13c
commit 7efbd5aca1
2 changed files with 5 additions and 3 deletions

View File

@ -263,7 +263,7 @@ typedef struct {
* (i.e., \ref orthantwise_c != 0). This parameter b (0 <= b < N) * (i.e., \ref orthantwise_c != 0). This parameter b (0 <= b < N)
* specifies the index number from which the library computes the * specifies the index number from which the library computes the
* L1 norm of the variables x, * L1 norm of the variables x,
* |x| := |x_{b} + x_{b+1} + ... + x_{N}| * |x| := |x_{b}| + |x_{b+1}| + ... + |x_{N}| .
* In other words, variables x_1, ..., x_{b-1} are not used for * In other words, variables x_1, ..., x_{b-1} are not used for
* computing the L1 norm. Setting b (0 < b < N), one can protect * computing the L1 norm. Setting b (0 < b < N), one can protect
* variables, x_1, ..., x_{b-1} (e.g., a bias term of logistic * variables, x_1, ..., x_{b-1} (e.g., a bias term of logistic

View File

@ -355,10 +355,12 @@ int lbfgs(
} }
/* /*
Make sure that the gradients are not zero. Make sure that the initial variables are not a minimizer.
*/ */
vecnorm(&gnorm, g, n); vecnorm(&gnorm, g, n);
if (gnorm == 0.) { vecnorm(&xnorm, x, n);
if (xnorm < 1.0) xnorm = 1.0;
if (gnorm / xnorm <= param->epsilon) {
ret = LBFGS_ALREADY_MINIMIZED; ret = LBFGS_ALREADY_MINIMIZED;
goto lbfgs_exit; goto lbfgs_exit;
} }