vectors. */
// 存储当前的变量值和梯度值
veccpy(xp, x, n);// 将当前的变量值复制到向量xp中
veccpy(gp, g, n);// 将当前的梯度值复制到向量gp中...x和向量g,因此从xp和gp中恢复变量值和梯度值
/* Revert to the previous point. */
veccpy(x, xp, n);
veccpy(g, gp, n);...循环的终止条件
在选择了最优步长过程中,会同时对变量进行更新,第二步即是判断此时的更新是否满足终止条件,终止条件分为以下三类:
是否收敛
vec2norm(&xnorm, x, n);// 平方和的开方...gp为上一代的值,g为当前的值
两个循环
// 通过拟牛顿法计算Hessian矩阵
// L-BFGS的两个循环
j = end;
for (i = 0;i i) {
j = (j..._{i}. */
vecdot(&beta, it->y, d, n);
beta /= it->ys;// 乘以rho
/* \gamma_{i+1} = \gamma_{i} + (\alpha