本文整理汇总了C++中RETURN_IF_NULL_COMMON函数 的典型用法代码示例。如果您正苦于以下问题:C++ RETURN_IF_NULL_COMMON函数的具体用法?C++ RETURN_IF_NULL_COMMON怎么用?C++ RETURN_IF_NULL_COMMON使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RETURN_IF_NULL_COMMON函数 的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: RETURN_IF_NULL_COMMON
cholmod_sparse *CHOLMOD(triplet_to_sparse)
(
/* ---- input ---- */
cholmod_triplet *T, /* matrix to copy */
size_t nzmax, /* allocate at least this much space in output matrix */
/* --------------- */
cholmod_common *Common
)
{
cholmod_sparse *R, *A = NULL ;
Int *Wj, *Rp, *Ri, *Rnz, *Ti, *Tj ;
Int i, j, p, k, stype, nrow, ncol, nz, ok ;
size_t anz = 0 ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (NULL) ;
RETURN_IF_NULL (T, NULL) ;
Ti = T->i ;
Tj = T->j ;
RETURN_IF_NULL (Ti, NULL) ;
RETURN_IF_NULL (Tj, NULL) ;
RETURN_IF_XTYPE_INVALID (T, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, NULL) ;
stype = SIGN (T->stype) ;
if (stype && T->nrow != T->ncol)
{
/* inputs invalid */
ERROR (CHOLMOD_INVALID, "matrix invalid") ;
return (NULL) ;
}
Common->status = CHOLMOD_OK ;
DEBUG (CHOLMOD(dump_triplet) (T, "T", Common)) ;
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
nrow = T->nrow ;
ncol = T->ncol ;
nz = T->nnz ;
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
CHOLMOD(allocate_work) (0, MAX (nrow, ncol), 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (NULL) ; /* out of memory */
}
/* ---------------------------------------------------------------------- */
/* allocate temporary matrix R */
/* ---------------------------------------------------------------------- */
R = CHOLMOD(allocate_sparse) (ncol, nrow, nz, FALSE, FALSE, -stype,
T->xtype, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (NULL) ; /* out of memory */
}
Rp = R->p ;
Ri = R->i ;
Rnz = R->nz ;
/* ---------------------------------------------------------------------- */
/* count the entries in each row of A (also counting duplicates) */
/* ---------------------------------------------------------------------- */
for (i = 0 ; i < nrow ; i++)
{
Rnz [i] = 0 ;
}
if (stype > 0)
{
for (k = 0 ; k < nz ; k++)
{
i = Ti [k] ;
j = Tj [k] ;
if (i < 0 || i >= nrow || j < 0 || j >= ncol)
{
ERROR (CHOLMOD_INVALID, "index out of range") ;
break ;
}
/* A will be symmetric with just the upper triangular part stored.
* Create a matrix R that is lower triangular. Entries in the
* upper part of R are transposed to the lower part. */
Rnz [MIN (i,j)]++ ;
}
}
else if (stype < 0)
{
for (k = 0 ; k < nz ; k++)
{
i = Ti [k] ;
//.........这里部分代码省略.........
开发者ID:Ascronia, 项目名称:fieldtrip, 代码行数:101, 代码来源:cholmod_triplet.c
示例2: CHOLMOD
double CHOLMOD(rcond) /* return min(diag(L)) / max(diag(L)) */
(
/* ---- input ---- */
cholmod_factor *L,
/* --------------- */
cholmod_common *Common
)
{
double lmin, lmax ;
double *Lx ;
Int *Lpi, *Lpx, *Super, *Lp ;
Int n, e, nsuper, s, k1, k2, psi, psend, psx, nsrow, nscol, jj, j ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (EMPTY) ;
RETURN_IF_NULL (L, EMPTY) ;
RETURN_IF_XTYPE_INVALID (L, CHOLMOD_REAL, CHOLMOD_ZOMPLEX, EMPTY) ;
Common->status = CHOLMOD_OK ;
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
n = L->n ;
if (n == 0)
{
return (1) ;
}
if (L->minor < L->n)
{
return (0) ;
}
e = (L->xtype == CHOLMOD_COMPLEX) ? 2 : 1 ;
if (L->is_super)
{
/* L is supernodal */
nsuper = L->nsuper ; /* number of supernodes in L */
Lpi = L->pi ; /* column pointers for integer pattern */
Lpx = L->px ; /* column pointers for numeric values */
Super = L->super ; /* supernode sizes */
Lx = L->x ; /* numeric values */
FIRST_LMINMAX (Lx [0], lmin, lmax) ; /* first diagonal entry of L */
for (s = 0 ; s < nsuper ; s++)
{
k1 = Super [s] ; /* first column in supernode s */
k2 = Super [s+1] ; /* last column in supernode is k2-1 */
psi = Lpi [s] ; /* first row index is L->s [psi] */
psend = Lpi [s+1] ; /* last row index is L->s [psend-1] */
psx = Lpx [s] ; /* first numeric entry is Lx [psx] */
nsrow = psend - psi ; /* supernode is nsrow-by-nscol */
nscol = k2 - k1 ;
for (jj = 0 ; jj < nscol ; jj++)
{
LMINMAX (Lx [e * (psx + jj + jj*nsrow)], lmin, lmax) ;
}
}
}
else
{
/* L is simplicial */
Lp = L->p ;
Lx = L->x ;
if (L->is_ll)
{
/* LL' factorization */
FIRST_LMINMAX (Lx [Lp [0]], lmin, lmax) ;
for (j = 1 ; j < n ; j++)
{
LMINMAX (Lx [e * Lp [j]], lmin, lmax) ;
}
}
else
{
/* LDL' factorization, the diagonal might be negative */
FIRST_LMINMAX (fabs (Lx [Lp [0]]), lmin, lmax) ;
for (j = 1 ; j < n ; j++)
{
LMINMAX (fabs (Lx [e * Lp [j]]), lmin, lmax) ;
}
}
}
return (lmin / lmax) ;
}
开发者ID:rforge, 项目名称:matrix, 代码行数:88, 代码来源:cholmod_rcond.c
示例3: CHOLMOD
int CHOLMOD(resymbol)
(
/* ---- input ---- */
cholmod_sparse *A, /* matrix to analyze */
Int *fset, /* subset of 0:(A->ncol)-1 */
size_t fsize, /* size of fset */
int pack, /* if TRUE, pack the columns of L */
/* ---- in/out --- */
cholmod_factor *L, /* factorization, entries pruned on output */
/* --------------- */
cholmod_common *Common
)
{
cholmod_sparse *H, *F, *G ;
Int ok, stype, nrow, ncol ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (FALSE) ;
RETURN_IF_NULL (A, FALSE) ;
RETURN_IF_NULL (L, FALSE) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, FALSE) ;
RETURN_IF_XTYPE_INVALID (L, CHOLMOD_REAL, CHOLMOD_ZOMPLEX, FALSE) ;
Common->status = CHOLMOD_OK ;
if (L->is_super)
{
/* cannot operate on a supernodal factorization */
ERROR (CHOLMOD_INVALID, "cannot operate on supernodal L") ;
return (FALSE) ;
}
if (L->n != A->nrow)
{
/* dimensions must agree */
ERROR (CHOLMOD_INVALID, "A and L dimensions do not match") ;
return (FALSE) ;
}
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
stype = A->stype ;
nrow = A->nrow ;
ncol = A->ncol ;
CHOLMOD(allocate_work) (nrow, 2*nrow + (stype ? 0 : ncol), 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (FALSE) ;
}
/* ---------------------------------------------------------------------- */
/* permute the input matrix if necessary */
/* ---------------------------------------------------------------------- */
H = NULL ;
G = NULL ;
if (stype > 0)
{
if (L->ordering == CHOLMOD_NATURAL)
{
/* F = triu(A)' */
/* workspace: Iwork (nrow) */
G = CHOLMOD(ptranspose) (A, 0, NULL, NULL, 0, Common) ;
}
else
{
/* F = triu(A(p,p))' */
/* workspace: Iwork (2*nrow) */
G = CHOLMOD(ptranspose) (A, 0, L->Perm, NULL, 0, Common) ;
}
F = G ;
}
else if (stype < 0)
{
if (L->ordering == CHOLMOD_NATURAL)
{
F = A ;
}
else
{
/* G = triu(A(p,p))' */
/* workspace: Iwork (2*nrow) */
G = CHOLMOD(ptranspose) (A, 0, L->Perm, NULL, 0, Common) ;
/* H = G' */
/* workspace: Iwork (nrow) */
H = CHOLMOD(ptranspose) (G, 0, NULL, NULL, 0, Common) ;
F = H ;
}
}
else
{
if (L->ordering == CHOLMOD_NATURAL)
{
F = A ;
}
else
{
//.........这里部分代码省略.........
开发者ID:rforge, 项目名称:matrix, 代码行数:101, 代码来源:cholmod_resymbol.c
示例4: CHOLMOD
int CHOLMOD(change_factor)
(
/* ---- input ---- */
int to_xtype, /* convert to CHOLMOD_PATTERN, _REAL, _COMPLEX, or
* _ZOMPLEX */
int to_ll, /* TRUE: convert to LL', FALSE: LDL' */
int to_super, /* TRUE: convert to supernodal, FALSE: simplicial */
int to_packed, /* TRUE: pack simplicial columns, FALSE: do not pack */
int to_monotonic, /* TRUE: put simplicial columns in order, FALSE: not */
/* ---- in/out --- */
cholmod_factor *L, /* factor to modify */
/* --------------- */
cholmod_common *Common
)
{
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (FALSE) ;
RETURN_IF_NULL (L, FALSE) ;
RETURN_IF_XTYPE_INVALID (L, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, FALSE) ;
if (to_xtype < CHOLMOD_PATTERN || to_xtype > CHOLMOD_ZOMPLEX)
{
ERROR (CHOLMOD_INVALID, "xtype invalid") ;
return (FALSE) ;
}
Common->status = CHOLMOD_OK ;
PRINT1 (("-----convert from (%d,%d,%d,%d,%d) to (%d,%d,%d,%d,%d)\n",
L->xtype, L->is_ll, L->is_super, L_is_packed (L, Common), L->is_monotonic,
to_xtype, to_ll, to_super, to_packed, to_monotonic)) ;
/* ensure all parameters are TRUE/FALSE */
to_ll = BOOLEAN (to_ll) ;
to_super = BOOLEAN (to_super) ;
ASSERT (BOOLEAN (L->is_ll) == L->is_ll) ;
ASSERT (BOOLEAN (L->is_super) == L->is_super) ;
if (to_super && to_xtype == CHOLMOD_ZOMPLEX)
{
ERROR (CHOLMOD_INVALID, "supernodal zomplex L not supported") ;
return (FALSE) ;
}
/* ---------------------------------------------------------------------- */
/* convert */
/* ---------------------------------------------------------------------- */
if (to_xtype == CHOLMOD_PATTERN)
{
/* ------------------------------------------------------------------ */
/* convert to symbolic */
/* ------------------------------------------------------------------ */
if (!to_super)
{
/* -------------------------------------------------------------- */
/* convert any factor into a simplicial symbolic factor */
/* -------------------------------------------------------------- */
any_to_simplicial_symbolic (L, to_ll, Common) ; /* cannot fail */
}
else
{
/* -------------------------------------------------------------- */
/* convert to a supernodal symbolic factor */
/* -------------------------------------------------------------- */
if (L->xtype != CHOLMOD_PATTERN && L->is_super)
{
/* convert from supernodal numeric to supernodal symbolic.
* this preserves symbolic pattern of L, discards numeric
* values */
ll_super_to_super_symbolic (L, Common) ; /* cannot fail */
}
else if (L->xtype == CHOLMOD_PATTERN && !(L->is_super))
{
/* convert from simplicial symbolic to supernodal symbolic.
* contents of supernodal pattern are uninitialized. Not meant
* for the end user. */
simplicial_symbolic_to_super_symbolic (L, Common) ;
}
else
{
/* cannot convert from simplicial numeric to supernodal
* symbolic */
ERROR (CHOLMOD_INVALID,
"cannot convert L to supernodal symbolic") ;
}
}
}
else
//.........这里部分代码省略.........
开发者ID:EmanueleCannizzaro, 项目名称:suitesparse, 代码行数:101, 代码来源:cholmod_change_factor.c
示例5: CHOLMOD
SuiteSparse_long CHOLMOD(postorder) /* return # of nodes postordered */
(
/* ---- input ---- */
Int *Parent, /* size n. Parent [j] = p if p is the parent of j */
size_t n,
Int *Weight, /* size n, optional. Weight [j] is weight of node j */
/* ---- output --- */
Int *Post, /* size n. Post [k] = j is kth in postordered tree */
/* --------------- */
cholmod_common *Common
)
{
Int *Head, *Next, *Pstack, *Iwork ;
Int j, p, k, w, nextj ;
size_t s ;
int ok = TRUE ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (EMPTY) ;
RETURN_IF_NULL (Parent, EMPTY) ;
RETURN_IF_NULL (Post, EMPTY) ;
Common->status = CHOLMOD_OK ;
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
/* s = 2*n */
s = CHOLMOD(mult_size_t) (n, 2, &ok) ;
if (!ok)
{
ERROR (CHOLMOD_TOO_LARGE, "problem too large") ;
return (EMPTY) ;
}
CHOLMOD(allocate_work) (n, s, 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (EMPTY) ;
}
ASSERT (CHOLMOD(dump_work) (TRUE, TRUE, 0, Common)) ;
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
Head = Common->Head ; /* size n+1, initially all EMPTY */
Iwork = Common->Iwork ;
Next = Iwork ; /* size n (i/i/l) */
Pstack = Iwork + n ; /* size n (i/i/l) */
/* ---------------------------------------------------------------------- */
/* construct a link list of children for each node */
/* ---------------------------------------------------------------------- */
if (Weight == NULL)
{
/* in reverse order so children are in ascending order in each list */
for (j = n-1 ; j >= 0 ; j--)
{
p = Parent [j] ;
if (p >= 0 && p < ((Int) n))
{
/* add j to the list of children for node p */
Next [j] = Head [p] ;
Head [p] = j ;
}
}
/* Head [p] = j if j is the youngest (least-numbered) child of p */
/* Next [j1] = j2 if j2 is the next-oldest sibling of j1 */
}
else
{
/* First, construct a set of link lists according to Weight.
*
* Whead [w] = j if node j is the first node in bucket w.
* Next [j1] = j2 if node j2 follows j1 in a link list.
*/
Int *Whead = Pstack ; /* use Pstack as workspace for Whead [ */
for (w = 0 ; w < ((Int) n) ; w++)
{
Whead [w] = EMPTY ;
}
/* do in forward order, so nodes that ties are ordered by node index */
for (j = 0 ; j < ((Int) n) ; j++)
{
p = Parent [j] ;
if (p >= 0 && p < ((Int) n))
{
w = Weight [j] ;
w = MAX (0, w) ;
//.........这里部分代码省略.........
开发者ID:Al-th, 项目名称:matlab, 代码行数:101, 代码来源:cholmod_postorder.c
示例6: pattern
cholmod_sparse *CHOLMOD(aat)
(
/* ---- input ---- */
cholmod_sparse *A, /* input matrix; C=A*A' is constructed */
Int *fset, /* subset of 0:(A->ncol)-1 */
size_t fsize, /* size of fset */
int mode, /* >0: numerical, 0: pattern, <0: pattern (no diag)
* -2: pattern only, no diagonal, add 50% + n extra
* space to C */
/* --------------- */
cholmod_common *Common
)
{
double fjt ;
double *Ax, *Fx, *Cx, *W ;
Int *Ap, *Anz, *Ai, *Fp, *Fi, *Cp, *Ci, *Flag ;
cholmod_sparse *C, *F ;
Int packed, j, i, pa, paend, pf, pfend, n, mark, cnz, t, p, values, diag,
extra ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (NULL) ;
RETURN_IF_NULL (A, NULL) ;
values = (mode > 0) && (A->xtype != CHOLMOD_PATTERN) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN,
values ? CHOLMOD_REAL : CHOLMOD_ZOMPLEX, NULL) ;
if (A->stype)
{
ERROR (CHOLMOD_INVALID, "matrix cannot be symmetric") ;
return (NULL) ;
}
Common->status = CHOLMOD_OK ;
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
diag = (mode >= 0) ;
n = A->nrow ;
CHOLMOD(allocate_work) (n, MAX (A->ncol, A->nrow), values ? n : 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (NULL) ; /* out of memory */
}
ASSERT (CHOLMOD(dump_work) (TRUE, TRUE, values ? n : 0, Common)) ;
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
ASSERT (CHOLMOD(dump_sparse) (A, "A", Common) >= 0) ;
/* get the A matrix */
Ap = A->p ;
Anz = A->nz ;
Ai = A->i ;
Ax = A->x ;
packed = A->packed ;
/* get workspace */
W = Common->Xwork ; /* size n, unused if values is FALSE */
Flag = Common->Flag ; /* size n, Flag [0..n-1] < mark on input*/
/* ---------------------------------------------------------------------- */
/* F = A' or A(:,f)' */
/* ---------------------------------------------------------------------- */
/* workspace: Iwork (nrow if no fset; MAX (nrow,ncol) if fset)*/
F = CHOLMOD(ptranspose) (A, values, NULL, fset, fsize, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (NULL) ; /* out of memory */
}
Fp = F->p ;
Fi = F->i ;
Fx = F->x ;
/* ---------------------------------------------------------------------- */
/* count the number of entries in the result C */
/* ---------------------------------------------------------------------- */
cnz = 0 ;
for (j = 0 ; j < n ; j++)
{
/* clear the Flag array */
mark = CHOLMOD(clear_flag) (Common) ;
/* exclude the diagonal, if requested */
if (!diag)
{
Flag [j] = mark ;
}
/* for each nonzero F(t,j) in column j, do: */
pfend = Fp [j+1] ;
for (pf = Fp [j] ; pf < pfend ; pf++)
//.........这里部分代码省略.........
开发者ID:rforge, 项目名称:matrix, 代码行数:101, 代码来源:cholmod_aat.c
示例7: CHOLMOD
int CHOLMOD(camd)
(
/* ---- input ---- */
cholmod_sparse *A, /* matrix to order */
Int *fset, /* subset of 0:(A->ncol)-1 */
size_t fsize, /* size of fset */
Int *Cmember, /* size nrow. see cholmod_ccolamd.c for description.*/
/* ---- output ---- */
Int *Perm, /* size A->nrow, output permutation */
/* --------------- */
cholmod_common *Common
)
{
double Info [CAMD_INFO], Control2 [CAMD_CONTROL], *Control ;
Int *Cp, *Len, *Nv, *Head, *Elen, *Degree, *Wi, *Next, *BucketSet,
*Work3n, *p ;
cholmod_sparse *C ;
Int j, n, cnz ;
size_t s ;
int ok = TRUE ;
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (FALSE) ;
RETURN_IF_NULL (A, FALSE) ;
n = A->nrow ;
/* s = 4*n */
s = CHOLMOD(mult_size_t) (n, 4, &ok) ;
if (!ok)
{
ERROR (CHOLMOD_TOO_LARGE, "problem too large") ;
return (FALSE) ;
}
RETURN_IF_NULL (Perm, FALSE) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, FALSE) ;
Common->status = CHOLMOD_OK ;
if (n == 0)
{
/* nothing to do */
Common->fl = 0 ;
Common->lnz = 0 ;
Common->anz = 0 ;
return (TRUE) ;
}
/* ---------------------------------------------------------------------- */
/* get workspace */
/* ---------------------------------------------------------------------- */
/* cholmod_analyze has allocated Cmember at Common->Iwork + 5*n+uncol, and
* CParent at Common->Iwork + 4*n+uncol, where uncol is 0 if A is symmetric
* or A->ncol otherwise. Thus, only the first 4n integers in Common->Iwork
* can be used here. */
CHOLMOD(allocate_work) (n, s, 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (FALSE) ;
}
p = Common->Iwork ;
Degree = p ; p += n ; /* size n */
Elen = p ; p += n ; /* size n */
Len = p ; p += n ; /* size n */
Nv = p ; p += n ; /* size n */
Work3n = CHOLMOD(malloc) (n+1, 3*sizeof (Int), Common) ;
if (Common->status < CHOLMOD_OK)
{
return (FALSE) ;
}
p = Work3n ;
Next = p ; p += n ; /* size n */
Wi = p ; p += (n+1) ; /* size n+1 */
BucketSet = p ; /* size n */
Head = Common->Head ; /* size n+1 */
/* ---------------------------------------------------------------------- */
/* construct the input matrix for CAMD */
/* ---------------------------------------------------------------------- */
if (A->stype == 0)
{
/* C = A*A' or A(:,f)*A(:,f)', add extra space of nnz(C)/2+n to C */
C = CHOLMOD(aat) (A, fset, fsize, -2, Common) ;
}
else
{
/* C = A+A', but use only the upper triangular part of A if A->stype = 1
* and only the lower part of A if A->stype = -1. Add extra space of
* nnz(C)/2+n to C. */
C = CHOLMOD(copy) (A, 0, -2, Common) ;
}
if (Common->status < CHOLMOD_OK)
//.........这里部分代码省略.........
开发者ID:00liujj, 项目名称:trilinos, 代码行数:101, 代码来源:amesos_cholmod_l_camd.c
示例8: CHOLMOD
int CHOLMOD(analyze_ordering)
(
/* ---- input ---- */
cholmod_sparse *A, /* matrix to analyze */
int ordering, /* ordering method used */
Int *Perm, /* size n, fill-reducing permutation to analyze */
Int *fset, /* subset of 0:(A->ncol)-1 */
size_t fsize, /* size of fset */
/* ---- output --- */
Int *Parent, /* size n, elimination tree */
Int *Post, /* size n, postordering of elimination tree */
Int *ColCount, /* size n, nnz in each column of L */
/* ---- workspace */
Int *First, /* size n workspace for cholmod_postorder */
Int *Level, /* size n workspace for cholmod_postorder */
/* --------------- */
cholmod_common *Common
)
{
cholmod_sparse *A1, *A2, *S, *F ;
Int n, ok, do_rowcolcounts ;
/* check inputs */
RETURN_IF_NULL_COMMON (FALSE) ;
RETURN_IF_NULL (A, FALSE) ;
n = A->nrow ;
do_rowcolcounts = (ColCount != NULL) ;
/* permute A according to Perm and fset */
ok = permute_matrices (A, ordering, Perm, fset, fsize, do_rowcolcounts,
&A1, &A2, &S, &F, Common) ;
/* find etree of S (symmetric upper/lower case) or F (unsym case) */
/* workspace: symmmetric: Iwork (nrow), unsym: Iwork (nrow+ncol) */
ok = ok && CHOLMOD(etree) (A->stype ? S:F, Parent, Common) ;
/* postorder the etree (required by cholmod_rowcolcounts) */
/* workspace: Iwork (2*nrow) */
ok = ok && (CHOLMOD(postorder) (Parent, n, NULL, Post, Common) == n) ;
/* cholmod_postorder doesn't set Common->status if it returns < n */
Common->status = (!ok && Common->status == CHOLMOD_OK) ?
CHOLMOD_INVALID : Common->status ;
/* analyze LL'=S or SS' or S(:,f)*S(:,f)' */
/* workspace:
* if symmetric: Flag (nrow), Iwork (2*nrow)
* if unsymmetric: Flag (nrow), Iwork (2*nrow+ncol), Head (nrow+1)
*/
if (do_rowcolcounts)
{
ok = ok && CHOLMOD(rowcolcounts) (A->stype ? F:S, fset, fsize, Parent,
Post, NULL, ColCount, First, Level, Common) ;
}
/* free temporary matrices and return result */
CHOLMOD(free_sparse) (&A1, Common) ;
CHOLMOD(free_sparse) (&A2, Common) ;
return (ok) ;
}
开发者ID:Ascronia, 项目名称:fieldtrip, 代码行数:62, 代码来源:cholmod_analyze.c
示例9: CHOLMOD
UF_long CHOLMOD(metis_bisector) /* returns separator size */
(
/* ---- input ---- */
cholmod_sparse *A, /* matrix to bisect */
Int *Anw, /* size A->nrow, node weights */
Int *Aew, /* size nz, edge weights */
/* ---- output --- */
Int *Partition, /* size A->nrow */
/* --------------- */
cholmod_common *Common
)
{
Int *Ap, *Ai ;
idxtype *Mp, *Mi, *Mnw, *Mew, *Mpart ;
Int n, nleft, nright, j, p, csep, total_weight, lightest, nz ;
int Opt [8], nn, csp ;
size_t n1 ;
DEBUG (Int nsep) ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (EMPTY) ;
RETURN_IF_NULL (A, EMPTY) ;
RETURN_IF_NULL (Anw, EMPTY) ;
RETURN_IF_NULL (Aew, EMPTY) ;
RETURN_IF_NULL (Partition, EMPTY) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, EMPTY) ;
if (A->stype || A->nrow != A->ncol)
{
/* A must be square, with both upper and lower parts present */
ERROR (CHOLMOD_INVALID, "matrix must be square, symmetric,"
" and with both upper/lower parts present") ;
return (EMPTY) ;
}
Common->status = CHOLMOD_OK ;
/* ---------------------------------------------------------------------- */
/* quick return */
/* ---------------------------------------------------------------------- */
n = A->nrow ;
if (n == 0)
{
return (0) ;
}
n1 = ((size_t) n) + 1 ;
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
Ap = A->p ;
Ai = A->i ;
nz = Ap [n] ;
/* ---------------------------------------------------------------------- */
/* METIS does not have a 64-bit integer version */
/* ---------------------------------------------------------------------- */
#ifdef LONG
if (sizeof (Int) > sizeof (idxtype) && MAX (n,nz) > INT_MAX / sizeof (int))
{
/* CHOLMOD's matrix is too large for METIS */
return (EMPTY) ;
}
#endif
/* ---------------------------------------------------------------------- */
/* set default options */
/* ---------------------------------------------------------------------- */
Opt [0] = 0 ; /* use defaults */
Opt [1] = 3 ; /* matching type */
Opt [2] = 1 ; /* init. partitioning algo*/
Opt [3] = 2 ; /* refinement algorithm */
Opt [4] = 0 ; /* no debug */
Opt [5] = 0 ; /* unused */
Opt [6] = 0 ; /* unused */
Opt [7] = -1 ; /* random seed */
DEBUG (for (j = 0 ; j < n ; j++) ASSERT (Anw [j] > 0)) ;
/* ---------------------------------------------------------------------- */
/* copy Int to METIS idxtype, if necessary */
/* ---------------------------------------------------------------------- */
DEBUG (for (j = 0 ; j < nz ; j++) ASSERT (Aew [j] > 0)) ;
if (sizeof (Int) == sizeof (idxtype))
{
/* this is the typical case */
Mi = (idxtype *) Ai ;
Mew = (idxtype *) Aew ;
Mp = (idxtype *) Ap ;
Mnw = (idxtype *) Anw ;
Mpart = (idxtype *) Partition ;
}
else
{
//.........这里部分代码省略.........
开发者ID:Tech-XCorp, 项目名称:Trilinos, 代码行数:101, 代码来源:amesos_cholmod_metis.c
示例10: CHOLMOD
int CHOLMOD(rowdel_mark)
(
/* ---- input ---- */
size_t kdel, /* row/column index to delete */
cholmod_sparse *R, /* NULL, or the nonzero pattern of kth row of L */
double yk [2], /* kth entry in the solution to A*y=b */
Int *colmark, /* Int array of size 1. See cholmod_updown.c */
/* ---- in/out --- */
cholmod_factor *L, /* factor to modify */
cholmod_dense *X, /* solution to Lx=b (size n-by-1) */
cholmod_dense *DeltaB, /* change in b, zero on output */
/* --------------- */
cholmod_common *Common
)
{
double dk, sqrt_dk, xk, dj, fl ;
double *Lx, *Cx, *W, *Xx, *Nx ;
Int *Li, *Lp, *Lnz, *Ci, *Rj, *Rp, *Iwork ;
cholmod_sparse *C, Cmatrix ;
Int j, p, pend, kk, lnz, n, Cp [2], do_solve, do_update, left, k,
right, middle, i, klast, given_row, rnz, ok ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (FALSE) ;
RETURN_IF_NULL (L, FALSE) ;
RETURN_IF_XTYPE_INVALID (L, CHOLMOD_PATTERN, CHOLMOD_REAL, FALSE) ;
n = L->n ;
k = kdel ;
if (k >= n || k < 0)
{
ERROR (CHOLMOD_INVALID, "k invalid") ;
return (FALSE) ;
}
if (R == NULL)
{
Rj = NULL ;
rnz = EMPTY ;
}
else
{
RETURN_IF_XTYPE_INVALID (R, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, FALSE) ;
if (R->ncol != 1 || R->nrow != L->n)
{
ERROR (CHOLMOD_INVALID, "R invalid") ;
return (FALSE) ;
}
Rj = R->i ;
Rp = R->p ;
rnz = Rp [1] ;
}
do_solve = (X != NULL) && (DeltaB != NULL) ;
if (do_solve)
{
RETURN_IF_XTYPE_INVALID (X, CHOLMOD_REAL, CHOLMOD_REAL, FALSE) ;
RETURN_IF_XTYPE_INVALID (DeltaB, CHOLMOD_REAL, CHOLMOD_REAL, FALSE) ;
Xx = X->x ;
Nx = DeltaB->x ;
if (X->nrow != L->n || X->ncol != 1 || DeltaB->nrow != L->n ||
DeltaB->ncol != 1 || Xx == NULL || Nx == NULL)
{
ERROR (CHOLMOD_INVALID, "X and/or DeltaB invalid") ;
return (FALSE) ;
}
}
else
{
Xx = NULL ;
Nx = NULL ;
}
Common->status = CHOLMOD_OK ;
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
CHOLMOD(allocate_work) (n, 2*n, 2*n, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (FALSE) ;
}
ASSERT (CHOLMOD(dump_work) (TRUE, TRUE, 2*n, Common)) ;
/* ---------------------------------------------------------------------- */
/* convert to simplicial numeric LDL' factor, if not already */
/* ---------------------------------------------------------------------- */
if (L->xtype == CHOLMOD_PATTERN || L->is_super || L->is_ll)
{
/* can only update/downdate a simplicial LDL' factorization */
CHOLMOD(change_factor) (CHOLMOD_REAL, FALSE, FALSE, FALSE, FALSE, L,
Common) ;
if (Common->status < CHOLMOD_OK)
{
/* out of memory, L is returned unchanged */
return (FALSE) ;
}
}
//.........这里部分代码省略.........
开发者ID:NickDaniil, 项目名称:structured, 代码行数:101, 代码来源:cholmod_rowdel.c
示例11: RETURN_IF_NULL_COMMON
cholmod_sparse *CHOLMOD(add)
(
/* ---- input ---- */
cholmod_sparse *A, /* matrix to add */
cholmod_sparse *B, /* matrix to add */
double alpha [2], /* scale factor for A */
double beta [2], /* scale factor for B */
int values, /* if TRUE compute the numerical values of C */
int sorted, /* if TRUE, sort columns of C */
/* --------------- */
cholmod_common *Common
)
{
double *Ax, *Bx, *Cx, *W ;
Int apacked, up, lo, nrow, ncol, bpacked, nzmax, pa, paend, pb, pbend, i,
j, p, mark, nz ;
Int *Ap, *Ai, *Anz, *Bp, *Bi, *Bnz, *Flag, *Cp, *Ci ;
cholmod_sparse *A2, *B2, *C ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (NULL) ;
RETURN_IF_NULL (A, NULL) ;
RETURN_IF_NULL (B, NULL) ;
values = values &&
(A->xtype != CHOLMOD_PATTERN) && (B->xtype != CHOLMOD_PATTERN) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN,
values ? CHOLMOD_REAL : CHOLMOD_ZOMPLEX, NULL) ;
RETURN_IF_XTYPE_INVALID (B, CHOLMOD_PATTERN,
values ? CHOLMOD_REAL : CHOLMOD_ZOMPLEX, NULL) ;
if (A->nrow != B->nrow || A->ncol != B->ncol)
{
/* A and B must have the same dimensions */
ERROR (CHOLMOD_INVALID, "A and B dimesions do not match") ;
return (NULL) ;
}
/* A and B must have the same numerical type if values is TRUE (both must
* be CHOLMOD_REAL, this is implicitly checked above) */
Common->status = CHOLMOD_OK ;
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
nrow = A->nrow ;
ncol = A->ncol ;
CHOLMOD(allocate_work) (nrow, MAX (nrow,ncol), values ? nrow : 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (NULL) ; /* out of memory */
}
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
if (nrow <= 1)
{
/* C will be implicitly sorted, so no need to sort it here */
sorted = FALSE ;
}
/* convert A or B to unsymmetric, if necessary */
A2 = NULL ;
B2 = NULL ;
if (A->stype != B->stype)
{
if (A->stype)
{
/* workspace: Iwork (max (nrow,ncol)) */
A2 = CHOLMOD(copy) (A, 0, values, Common) ;
if (Common->status < CHOLMOD_OK)
{
return (NULL) ; /* out of memory */
}
A = A2 ;
}
if (B->stype)
{
/* workspace: Iwork (max (nrow,ncol)) */
B2 = CHOLMOD(copy) (B, 0, values, Common) ;
if (Common->status < CHOLMOD_OK)
{
CHOLMOD(free_sparse) (&A2, Common) ;
return (NULL) ; /* out of memory */
}
B = B2 ;
}
}
/* get the A matrix */
ASSERT (A->stype == B->stype) ;
up = (A->stype > 0) ;
lo = (A->stype < 0) ;
Ap = A->p ;
//.........这里部分代码省略.........
开发者ID:GHilmarG, 项目名称:Ua, 代码行数:101, 代码来源:cholmod_add.c
示例12: RETURN_IF_NULL_COMMON
cholmod_factor *CHOLMOD(analyze_p2)
(
/* ---- input ---- */
int for_cholesky, /* if TRUE, then analyze for Cholesky; else for QR */
cholmod_sparse *A, /* matrix to order and analyze */
Int *UserPerm, /* user-provided permutation, size A->nrow */
Int *fset, /* subset of 0:(A->ncol)-1 */
size_t fsize, /* size of fset */
/* --------------- */
cholmod_common *Common
)
{
double lnz_best ;
Int *First, *Level, *Work4n, *Cmember, *CParent, *ColCount, *Lperm, *Parent,
*Post, *Perm, *Lparent, *Lcolcount ;
cholmod_factor *L ;
Int k, n, ordering, method, nmethods, status, default_strategy, ncol, uncol,
skip_analysis, skip_best ;
Int amd_backup ;
size_t s ;
int ok = TRUE ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (NULL) ;
RETURN_IF_NULL (A, NULL) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, NULL) ;
Common->status = CHOLMOD_OK ;
status = CHOLMOD_OK ;
Common->selected = EMPTY ;
Common->called_nd = FALSE ;
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
n = A->nrow ;
ncol = A->ncol ;
uncol = (A->stype == 0) ? (A->ncol) : 0 ;
/* ---------------------------------------------------------------------- */
/* set the default strategy */
/* ---------------------------------------------------------------------- */
lnz_best = (double) EMPTY ;
skip_best = FALSE ;
nmethods = MIN (Common->nmethods, CHOLMOD_MAXMETHODS) ;
nmethods = MAX (0, nmethods) ;
PRINT1 (("nmethods "ID"\n", nmethods)) ;
default_strategy = (nmethods == 0) ;
if (default_strategy)
{
/* default strategy: try UserPerm, if given. Try AMD for A, or AMD
* to order A*A'. Try METIS for the symmetric case only if AMD reports
* a high degree of fill-in and flop count. METIS is not tried if the
* Partition Module isn't installed. If Common->default_nesdis is
* TRUE, then NESDIS is used as the 3rd ordering instead. */
Common->method [0].ordering = CHOLMOD_GIVEN ;/* skip if UserPerm NULL */
Common->method [1].ordering = CHOLMOD_AMD ;
Common->method [2].ordering =
(Common->default_nesdis ? CHOLMOD_NESDIS : CHOLMOD_METIS) ;
amd_backup = FALSE ;
#ifndef NPARTITION
nmethods = 3 ;
#else
nmethods = 2 ;
#endif
}
else
{
/* If only METIS and NESDIS are selected, or if 2 or more methods are
* being tried, then enable AMD backup */
amd_backup = (nmethods > 1) || (nmethods == 1 &&
(Common->method [0].ordering == CHOLMOD_METIS ||
Common->method [0].ordering == CHOLMOD_NESDIS)) ;
}
#ifdef NSUPERNODAL
/* CHOLMOD Supernodal module not installed, just do simplicial analysis */
Common->supernodal = CHOLMOD_SIMPLICIAL ;
#endif
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
/* Note: enough space needs to be allocated here so that routines called by
* cholmod_analyze do not reallocate the space.
*/
/* s = 6*n + uncol */
s = CHOLMOD(mult_size_t) (n, 6, &ok) ;
s = CHOLMOD(add_size_t) (s, uncol, &ok) ;
if (!ok)
{
ERROR (CHOLMOD_TOO_LARGE, "problem too large") ;
return (NULL) ;
//.........这里部分代码省略.........
开发者ID:Ascronia, 项目名称:fieldtrip, 代码行数:101, 代码来源:cholmod_analyze.c
示例13: CHOLMOD
int CHOLMOD(super_symbolic2)
(
/* ---- input ---- */
int for_whom, /* FOR_SPQR (0): for SPQR but not GPU-accelerated
FOR_CHOLESKY (1): for Cholesky (GPU or not)
FOR_SPQRGPU (2): for SPQR with GPU acceleration */
cholmod_sparse *A, /* matrix to analyze */
cholmod_sparse *F, /* F = A' or A(:,f)' */
Int *Parent, /* elimination tree */
/* ---- in/out --- */
cholmod_factor *L, /* simplicial symbolic on input,
* supernodal symbolic on output */
/* --------------- */
cholmod_common *Common
)
{
double zrelax0, zrelax1, zrelax2, xxsize ;
Int *Wi, *Wj, *Super, *Snz, *Ap, *Ai, *Flag, *Head, *Ls, *Lpi, *Lpx, *Fnz,
*Sparent, *Anz, *SuperMap, *Merged, *Nscol, *Zeros, *Fp, *Fj,
*ColCount, *Lpi2, *Lsuper, *Iwork ;
Int nsuper, d, n, j, k, s, mark, parent, p, pend, k1, k2, packed, nscol,
nsrow, ndrow1, ndrow2, stype, ssize, xsize, sparent, plast, slast,
csize, maxcsize, ss, nscol0, nscol1, ns, nfsuper, newzeros, totzeros,
merge, snext, esize, maxesize, nrelax0, nrelax1, nrelax2, Asorted ;
size_t w ;
int ok = TRUE, find_xsize ;
const char* env_use_gpu;
const char* env_max_bytes;
size_t max_bytes;
const char* env_max_fraction;
double max_fraction;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (FALSE) ;
RETURN_IF_NULL (A, FALSE) ;
RETURN_IF_NULL (L, FALSE) ;
RETURN_IF_NULL (Parent, FALSE) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, FALSE) ;
RETURN_IF_XTYPE_INVALID (L, CHOLMOD_PATTERN, CHOLMOD_PATTERN, FALSE) ;
stype = A->stype ;
if (stype < 0)
{
/* invalid symmetry; symmetric lower form not supported */
ERROR (CHOLMOD_INVALID, "symmetric lower not supported") ;
return (FALSE) ;
}
if (stype == 0)
{
/* F must be present in the unsymmetric case */
RETURN_IF_NULL (F, FALSE) ;
}
if (L->is_super)
{
/* L must be a simplicial symbolic factor */
ERROR (CHOLMOD_INVALID, "L must be symbolic on input") ;
return (FALSE) ;
}
Common->status = CHOLMOD_OK ;
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
n = A->nrow ;
/* w = 5*n */
w = CHOLMOD(mult_size_t) (n, 5, &ok) ;
if (!ok)
{
ERROR (CHOLMOD_TOO_LARGE, "problem too large") ;
return (FALSE) ;
}
CHOLMOD(allocate_work) (n, w, 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
/* out of memory */
return (FALSE) ;
}
ASSERT (CHOLMOD(dump_work) (TRUE, TRUE, 0, Common)) ;
/* ---------------------------------------------------------------------- */
/* allocate GPU workspace */
/* ---------------------------------------------------------------------- */
L->useGPU = 0 ; /* only used for Cholesky factorization, not QR */
#ifdef GPU_BLAS
/* GPU module is installed */
if ( for_whom == CHOLMOD_ANALYZE_FOR_CHOLESKY )
{
/* only allocate GPU workspace for supernodal Cholesky, and only when
the GPU is requested and available. */
max_bytes = 0;
max_fraction = 0;
//.........这里部分代码省略.........
开发者ID:GHilmarG, 项目名称:Ua, 代码行数:101, 代码来源:cholmod_super_symbolic.c
示例14: CHOLMOD
int CHOLMOD(symmetry)
(
/* ---- input ---- */
cholmod_sparse *A,
int option, /* option 0, 1, or 2 (see above) */
/* ---- output --- */ /* outputs ignored if any are NULL */
Int *p_xmatched, /* # of matched numerical entries */
Int *p_pmatched, /* # of matched entries in pattern */
Int *p_nzoffdiag, /* # of off diagonal entries */
Int *p_nzdiag, /* # of diagonal entries */
/* --------------- */
cholmod_common *Common
)
{
double aij_real = 0, aij_imag = 0, aji_real = 0, aji_imag = 0 ;
double *Ax, *Az ;
Int *Ap, *Ai, *Anz, *munch ;
Int packed, nrow, ncol, xtype, is_symmetric, is_skew, is_hermitian, posdiag,
j, p, pend, i, piend, result, xmatched, pmatched, nzdiag, i2, found ;
/* ---------------------------------------------------------------------- */
/* check inputs */
/* ---------------------------------------------------------------------- */
RETURN_IF_NULL_COMMON (EMPTY) ;
RETURN_IF_NULL (A, EMPTY) ;
RETURN_IF_XTYPE_INVALID (A, CHOLMOD_PATTERN, CHOLMOD_ZOMPLEX, EMPTY) ;
Common->status = CHOLMOD_OK ;
ASSERT (CHOLMOD(dump_sparse) (A, "cholmod_symmetry", Common) >= 0) ;
if (p_xmatched == NULL || p_pmatched == NULL
|| p_nzoffdiag == NULL || p_nzdiag == NULL)
{
/* option 2 is not performed if any output parameter is NULL */
option = MAX (option, 1) ;
}
/* ---------------------------------------------------------------------- */
/* get inputs */
/* ---------------------------------------------------------------------- */
Ap = A->p ;
Ai = A->i ;
Ax = A->x ;
Az = A->z ;
Anz = A->nz ;
packed = A->packed ;
ncol = A->ncol ;
nrow = A->nrow ;
xtype = A->xtype ;
/* ---------------------------------------------------------------------- */
/* check if rectangular, unsorted, or stype is not zero */
/* ---------------------------------------------------------------------- */
if (nrow != ncol)
{
/* matrix is rectangular */
return (CHOLMOD_MM_RECTANGULAR) ;
}
if (!(A->sorted) || A->stype != 0)
{
/* this function cannot determine the type or symmetry */
return (EMPTY) ;
}
/* ---------------------------------------------------------------------- */
/* allocate workspace */
/* ---------------------------------------------------------------------- */
/* this function requires uninitialized Int workspace of size ncol */
CHOLMOD(allocate_work) (0, ncol, 0, Common) ;
if (Common->status < CHOLMOD_OK)
{
/* out of memory */
return (EMPTY) ;
}
munch = Common->Iwork ; /* the munch array is size ncol */
/* ---------------------------------------------------------------------- */
/* determine symmetry of a square matrix */
/* ---------------------------------------------------------------------- */
/* a complex or zomplex matrix is Hermitian until proven otherwise */
is_hermitian = (xtype >= CHOLMOD_COMPLEX) ;
/* any matrix is symmetric until proven otherwise */
is_symmetric = TRUE ;
/* a non-pattern matrix is skew-symmetric until proven otherwise */
is_skew = (xtype != CHOLMOD_PATTERN) ;
/* a matrix has positive diagonal entries until proven otherwise */
posdiag = TRUE ;
/* munch pointers start at the top of each column */
for (j = 0 ; j < ncol ; j++)
{
//.........这里部分代码省略.........
开发者ID:Al-th, 项目名称:matlab, 代码行数:101, 代码来源:cholmod_symmetry.c
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19287| 2023-10-27
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:10021| 2022-11-06
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8344| 2022-11-06
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8714| 2022-11-06
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8658| 2022-11-06
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9688| 2022-11-06
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8647| 2022-11-06
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:8014| 2022-11-06
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8683| 2022-11-06
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7550| 2022-11-06
请发表评论