173 Int *Fp, *Fnz, *Ap, *Ai, *Anz, *Wi ;
174 Int nrow, ncol, permute, use_fset, Apacked, Fpacked, p, pend,
175 i, j, k, Fsorted, nf, jj, jlast ;
188 if (A->
nrow != F->ncol || A->
ncol != F->nrow)
200 use_fset = (fset !=
NULL) ;
210 permute = (Perm !=
NULL) ;
214 Fpacked = F->packed ;
217 nf = (use_fset) ? nf : ncol ;
245 for (i = 0 ; i < nrow ; i++)
249 for (k = 0 ; k < nrow ; k++)
252 if (i < 0 || i > nrow || Wi [i] == 0)
263 for (j = 0 ; j < ncol ; j++)
267 for (k = 0 ; k < nf ; k++)
270 if (j < 0 || j > ncol || Wi [j] == 0)
287 for (i = 0 ; i < nrow ; i++)
298 for (jj = 0 ; jj < nf ; jj++)
306 pend = (Apacked) ? (Ap [j+1]) : (p + Anz [j]) ;
307 for ( ; p < pend ; p++)
319 for (i = 0 ; i < nrow ; i++)
321 Fnz [i] = Wi [Perm [i]] ;
326 for (i = 0 ; i < nrow ; i++)
331 for (i = 0 ; i < nrow ; i++)
337 for (j = 0 ; j < ncol ; j++)
340 pend = (Apacked) ? (Ap [j+1]) : (p + Anz [j]) ;
341 for ( ; p < pend ; p++)
353 for (j = 0 ; j < ncol ; j++)
356 pend = (Apacked) ? (Ap [j+1]) : (p + Anz [j]) ;
357 for ( ; p < pend ; p++)
368 for (i = 0 ; i < nrow ; i++)
370 Fnz [i] = Wi [Perm [i]] ;
375 for (i = 0 ; i < nrow ; i++)
390 for (i = 0 ; i < nrow ; i++)
395 for (i = 0 ; i < nrow ; i++)
397 Wi [Perm [i]] = Fp [i] ;
402 for (i = 0 ; i < nrow ; i++)
407 for (i = 0 ; i < nrow ; i++)
414 if (p > (
Int) (F->nzmax))
427 ok = amesos_p_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
431 ok = amesos_r_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
438 ok = amesos_ct_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
443 ok = amesos_c_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
451 ok = amesos_zt_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
456 ok = amesos_z_cholmod_transpose_unsym (A, Perm, fset, nf, F, Common) ;
466 F->sorted = Fsorted ;
468 ASSERT (
CHOLMOD(dump_sparse) (F,
"output F unsym", Common) >= 0) ;
496 Int *Ap, *Anz, *Ai, *Fp, *Wi, *Pinv, *Iwork ;
497 Int p, pend, packed, upper, permute, jold,
n, i, j, k, iold ;
516 if (A->
nrow != F->ncol || A->
ncol != F->nrow)
527 permute = (Perm !=
NULL) ;
534 upper = (A->
stype > 0) ;
560 Iwork = Common->Iwork ;
570 for (i = 0 ; i < n ; i++)
574 for (k = 0 ; k < n ; k++)
577 if (i < 0 || i > n || Pinv [i] !=
EMPTY)
593 for (i = 0 ; i < n ; i++)
605 for (j = 0 ; j < n ; j++)
609 for (p = Ap [jold] ; p < pend ; p++)
623 for (j = 0 ; j < n ; j++)
627 for (p = Ap [jold] ; p < pend ; p++)
644 for (j = 0 ; j < n ; j++)
647 for (p = Ap [j] ; p < pend ; p++)
660 for (j = 0 ; j < n ; j++)
663 for (p = Ap [j] ; p < pend ; p++)
682 for (j = 0 ; j < n ; j++)
686 pend = p + Anz [jold] ;
687 for ( ; p < pend ; p++)
701 for (j = 0 ; j < n ; j++)
705 pend = p + Anz [jold] ;
706 for ( ; p < pend ; p++)
723 for (j = 0 ; j < n ; j++)
727 for ( ; p < pend ; p++)
740 for (j = 0 ; j < n ; j++)
744 for ( ; p < pend ; p++)
762 for (i = 0 ; i < n ; i++)
768 for (i = 0 ; i < n ; i++)
773 if (p > (
Int) (F->nzmax))
786 PRINT2 ((
"\n:::: p_transpose_sym Perm %p\n", Perm)) ;
787 ok = amesos_p_cholmod_transpose_sym (A, Perm, F, Common) ;
791 PRINT2 ((
"\n:::: r_transpose_sym Perm %p\n", Perm)) ;
792 ok = amesos_r_cholmod_transpose_sym (A, Perm, F, Common) ;
799 PRINT2 ((
"\n:::: ct_transpose_sym Perm %p\n", Perm)) ;
800 ok = amesos_ct_cholmod_transpose_sym (A, Perm, F, Common) ;
805 PRINT2 ((
"\n:::: c_transpose_sym Perm %p\n", Perm)) ;
806 ok = amesos_c_cholmod_transpose_sym (A, Perm, F, Common) ;
814 PRINT2 ((
"\n:::: zt_transpose_sym Perm %p\n", Perm)) ;
815 ok = amesos_zt_cholmod_transpose_sym (A, Perm, F, Common) ;
820 PRINT2 ((
"\n:::: z_transpose_sym Perm %p\n", Perm)) ;
821 ok = amesos_z_cholmod_transpose_sym (A, Perm, F, Common) ;
832 F->sorted = !permute ;
835 ASSERT (
CHOLMOD(dump_sparse) (F,
"output F sym", Common) >= 0) ;
893 Int nrow, ncol, use_fset, j, jj, fnz, packed, stype, nf, xtype ;
930 use_fset = (fset !=
NULL) ;
975 nf = (use_fset) ? nf : ncol ;
980 for (jj = 0 ; jj < nf ; jj++)
986 if (j >= 0 && j < ncol)
988 fnz += packed ? (Ap [j+1] - Ap [j]) :
MAX (0, Anz [j]) ;
1057 Int anz, ncol, nrow, stype ;
1132 ASSERT ((
size_t) anz <= A->nzmax) ;
#define CHOLMOD_TOO_LARGE
UF_long CHOLMOD() nnz(cholmod_sparse *A, cholmod_common *Common)
int CHOLMOD() transpose_sym(cholmod_sparse *A, int values, Int *Perm, cholmod_sparse *F, cholmod_common *Common)
int CHOLMOD() transpose_unsym(cholmod_sparse *A, int values, Int *Perm, Int *fset, size_t fsize, cholmod_sparse *F, cholmod_common *Common)
size_t CHOLMOD() add_size_t(size_t a, size_t b, int *ok)
cholmod_sparse *CHOLMOD() transpose(cholmod_sparse *A, int values, cholmod_common *Common)
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)
cholmod_sparse *CHOLMOD() ptranspose(cholmod_sparse *A, int values, Int *Perm, Int *fset, size_t fsize, cholmod_common *Common)
int CHOLMOD() sort(cholmod_sparse *A, cholmod_common *Common)
int CHOLMOD() free_sparse(cholmod_sparse **AHandle, cholmod_common *Common)
#define ASSERT(expression)
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)
#define ERROR(status, msg)
#define RETURN_IF_XTYPE_INVALID(A, xtype1, xtype2, result)