49 double *Ax, *Bx, *Cx, *W ;
50 Int apacked, up, lo, nrow, ncol, bpacked, nzmax, pa, paend, pb, pbend, i,
52 Int *Ap, *Ai, *Anz, *Bp, *Bi, *Bnz, *Flag, *Cp, *Ci ;
132 up = (A->
stype > 0) ;
133 lo = (A->
stype < 0) ;
146 bpacked =
B->packed ;
150 Flag = Common->Flag ;
158 nzmax = A->
nzmax +
B->nzmax ;
177 for (j = 0 ; j < ncol ; j++)
186 pbend = (bpacked) ? (Bp [j+1]) : (pb + Bnz [j]) ;
187 for (p = pb ; p < pbend ; p++)
190 if ((up && i > j) || (lo && i < j))
197 W [i] = beta [0] * Bx [p] ;
203 paend = (apacked) ? (Ap [j+1]) : (pa + Anz [j]) ;
204 for (p = pa ; p < paend ; p++)
207 if ((up && i > j) || (lo && i < j))
215 Cx [nz] = W [i] + alpha [0] * Ax [p] ;
222 for (p = pb ; p < pbend ; p++)
225 if ((up && i > j) || (lo && i < j))
229 if (Flag [i] == mark)
int CHOLMOD() reallocate_sparse(size_t nznew, cholmod_sparse *A, cholmod_common *Common)
#define RETURN_IF_NULL_COMMON(result)
int CHOLMOD() sort(cholmod_sparse *A, cholmod_common *Common)
int CHOLMOD() free_sparse(cholmod_sparse **AHandle, cholmod_common *Common)
#define ASSERT(expression)
cholmod_sparse *CHOLMOD() add(cholmod_sparse *A, cholmod_sparse *B, double alpha[2], double beta[2], int values, int sorted, cholmod_common *Common)
cholmod_sparse *CHOLMOD() allocate_sparse(size_t nrow, size_t ncol, size_t nzmax, int sorted, int packed, int stype, int xtype, cholmod_common *Common)
int CHOLMOD() allocate_work(size_t nrow, size_t iworksize, size_t xworksize, cholmod_common *Common)
#define RETURN_IF_NULL(A, result)
UF_long CHOLMOD() clear_flag(cholmod_common *Common)
#define ERROR(status, msg)
#define RETURN_IF_XTYPE_INVALID(A, xtype1, xtype2, result)
cholmod_sparse *CHOLMOD() copy(cholmod_sparse *A, int stype, int mode, cholmod_common *Common)