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:
		
							
								
								
									
										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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user