lbfgsfloatval_t *x, const int n)
对向量y中的每个元素增加向量x中对应元素的c倍
void vecadd(lbfgsfloatval_t *y, const lbfgsfloatval_t...(n, x, &fx, g, d, &step, xp, gp, w, &cd, ¶m);// gp是梯度
} else {// 包含L1正则
ls = linesearch(n, x, &fx...循环的终止条件
在选择了最优步长过程中,会同时对变量进行更新,第二步即是判断此时的更新是否满足终止条件,终止条件分为以下三类:
是否收敛
vec2norm(&xnorm, x, n);// 平方和的开方...目标函数值是否有足够大的下降(最小问题)
if (pf !...m : k;// 判断是否有足够的m代
++k;
end = (end + 1) % m;
2.3.8.