170 Int *Fp, *Fnz, *Ap, *Ai, *Anz, *Wi ;
171 Int nrow, ncol, permute, use_fset, Apacked, Fpacked, p, pend,
172 i, j, k, Fsorted, nf, jj, jlast ;
185 if (A->
nrow != F->ncol || A->
ncol != F->nrow)
197 use_fset = (fset !=
NULL) ;
207 permute = (Perm !=
NULL) ;
211 Fpacked = F->packed ;
214 nf = (use_fset) ? nf : ncol ;
242 for (i = 0 ; i < nrow ; i++)
246 for (k = 0 ; k < nrow ; k++)
249 if (i < 0 || i > nrow || Wi [i] == 0)
260 for (j = 0 ; j < ncol ; j++)
264 for (k = 0 ; k < nf ; k++)
267 if (j < 0 || j > ncol || Wi [j] == 0)
284 for (i = 0 ; i < nrow ; i++)
295 for (jj = 0 ; jj < nf ; jj++)
303 pend = (Apacked) ? (Ap [j+1]) : (p + Anz [j]) ;
304 for ( ; p < pend ; p++)
316 for (i = 0 ; i < nrow ; i++)
318 Fnz [i] = Wi [Perm [i]] ;
323 for (i = 0 ; i < nrow ; i++)
328 for (i = 0 ; i < nrow ; i++)
334 for (j = 0 ; j < ncol ; j++)
337 pend = (Apacked) ? (Ap [j+1]) : (p + Anz [j]) ;
338 for ( ; p < pend ; p++)
350 for (j = 0 ; j < ncol ; j++)
353 pend = (Apacked) ? (Ap [j+1]) : (p + Anz [j]) ;
354 for ( ; p < pend ; p++)
365 for (i = 0 ; i < nrow ; i++)
367 Fnz [i] = Wi [Perm [i]] ;
372 for (i = 0 ; i < nrow ; i++)
387 for (i = 0 ; i < nrow ; i++)
392 for (i = 0 ; i < nrow ; i++)
394 Wi [Perm [i]] = Fp [i] ;
399 for (i = 0 ; i < nrow ; i++)
404 for (i = 0 ; i < nrow ; i++)
411 if (p > (
Int) (F->nzmax))
424 ok = amesos_p_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
428 ok = amesos_r_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
435 ok = amesos_ct_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
440 ok = amesos_c_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
448 ok = amesos_zt_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
453 ok = amesos_z_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
463 F->sorted = Fsorted ;
465 ASSERT (
CHOLMOD(dump_sparse) (F,
"output F unsym", Common) >= 0) ;
493 Int *Ap, *Anz, *Ai, *Fp, *Wi, *Pinv, *Iwork ;
494 Int p, pend, packed, upper, permute, jold,
n, i, j, k, iold ;
513 if (A->
nrow != F->ncol || A->
ncol != F->nrow)
524 permute = (Perm !=
NULL) ;
531 upper = (A->
stype > 0) ;
557 Iwork = Common->Iwork ;
567 for (i = 0 ; i < n ; i++)
571 for (k = 0 ; k < n ; k++)
574 if (i < 0 || i > n || Pinv [i] !=
EMPTY)
590 for (i = 0 ; i < n ; i++)
602 for (j = 0 ; j < n ; j++)
606 for (p = Ap [jold] ; p < pend ; p++)
620 for (j = 0 ; j < n ; j++)
624 for (p = Ap [jold] ; p < pend ; p++)
641 for (j = 0 ; j < n ; j++)
644 for (p = Ap [j] ; p < pend ; p++)
657 for (j = 0 ; j < n ; j++)
660 for (p = Ap [j] ; p < pend ; p++)
679 for (j = 0 ; j < n ; j++)
683 pend = p + Anz [jold] ;
684 for ( ; p < pend ; p++)
698 for (j = 0 ; j < n ; j++)
702 pend = p + Anz [jold] ;
703 for ( ; p < pend ; p++)
720 for (j = 0 ; j < n ; j++)
724 for ( ; p < pend ; p++)
737 for (j = 0 ; j < n ; j++)
741 for ( ; p < pend ; p++)
759 for (i = 0 ; i < n ; i++)
765 for (i = 0 ; i < n ; i++)
770 if (p > (
Int) (F->nzmax))
783 PRINT2 ((
"\n:::: p_transpose_sym Perm %p\n", Perm)) ;
784 ok = amesos_p_cholmod_transpose_sym (A, Perm, F, Common) ;
788 PRINT2 ((
"\n:::: r_transpose_sym Perm %p\n", Perm)) ;
789 ok = amesos_r_cholmod_transpose_sym (A, Perm, F, Common) ;
796 PRINT2 ((
"\n:::: ct_transpose_sym Perm %p\n", Perm)) ;
797 ok = amesos_ct_cholmod_transpose_sym (A, Perm, F, Common) ;
802 PRINT2 ((
"\n:::: c_transpose_sym Perm %p\n", Perm)) ;
803 ok = amesos_c_cholmod_transpose_sym (A, Perm, F, Common) ;
811 PRINT2 ((
"\n:::: zt_transpose_sym Perm %p\n", Perm)) ;
812 ok = amesos_zt_cholmod_transpose_sym (A, Perm, F, Common) ;
817 PRINT2 ((
"\n:::: z_transpose_sym Perm %p\n", Perm)) ;
818 ok = amesos_z_cholmod_transpose_sym (A, Perm, F, Common) ;
829 F->sorted = !permute ;
832 ASSERT (
CHOLMOD(dump_sparse) (F,
"output F sym", Common) >= 0) ;
890 Int nrow, ncol, use_fset, j, jj, fnz, packed, stype, nf, xtype ;
927 use_fset = (fset !=
NULL) ;
972 nf = (use_fset) ? nf : ncol ;
977 for (jj = 0 ; jj < nf ; jj++)
983 if (j >= 0 && j < ncol)
985 fnz += packed ? (Ap [j+1] - Ap [j]) :
MAX (0, Anz [j]) ;
1054 Int anz, ncol, nrow, stype ;
1129 ASSERT ((
size_t) anz <= A->nzmax) ;
#define CHOLMOD_TOO_LARGE
int CHOLMOD() transpose_unsym(cholmod_sparse *A, int values, Int *Perm, Int *fset, size_t fsize, cholmod_sparse *F, cholmod_common *Common)
UF_long CHOLMOD() nnz(cholmod_sparse *A, cholmod_common *Common)
cholmod_sparse *CHOLMOD() ptranspose(cholmod_sparse *A, int values, Int *Perm, Int *fset, size_t fsize, cholmod_common *Common)
size_t CHOLMOD() add_size_t(size_t a, size_t b, int *ok)
int CHOLMOD() reallocate_sparse(size_t nznew, cholmod_sparse *A, cholmod_common *Common)
#define RETURN_IF_NULL_COMMON(result)
size_t CHOLMOD() mult_size_t(size_t a, size_t k, int *ok)
int CHOLMOD() free_sparse(cholmod_sparse **AHandle, cholmod_common *Common)
int CHOLMOD() sort(cholmod_sparse *A, cholmod_common *Common)
#define ASSERT(expression)
cholmod_sparse *CHOLMOD() transpose(cholmod_sparse *A, int values, cholmod_common *Common)
int CHOLMOD() dump_perm(Int *Perm, size_t len, size_t n, char *name, 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)
int CHOLMOD() transpose_sym(cholmod_sparse *A, int values, Int *Perm, cholmod_sparse *F, cholmod_common *Common)
#define ERROR(status, msg)
#define RETURN_IF_XTYPE_INVALID(A, xtype1, xtype2, result)