void spx_eval_trow(SPXLP *lp, const double rho[/*1+m*/], double trow[/*1+n-m*/]) { int m = lp->m; int n = lp->n; int j; for (j = 1; j <= n-m; j++) trow[j] = spx_eval_tij(lp, rho, j); return; }
double spy_eval_gamma_i(SPXLP *lp, SPYSE *se, int i) { int m = lp->m; int n = lp->n; int *head = lp->head; char *refsp = se->refsp; double *rho = se->work; int j, k; double gamma_i, t_ij; xassert(se->valid); xassert(1 <= i && i <= m); k = head[i]; /* x[k] = xB[i] */ gamma_i = (refsp[k] ? 1.0 : 0.0); spx_eval_rho(lp, i, rho); for (j = 1; j <= n-m; j++) { k = head[m+j]; /* x[k] = xN[j] */ if (refsp[k]) { t_ij = spx_eval_tij(lp, rho, j); gamma_i += t_ij * t_ij; } } return gamma_i; }