@@ -29,30 +29,37 @@ CSC_Matrix *new_csc_matrix(int m, int n, int nnz);
2929/* Free a CSC matrix */
3030void free_csc_matrix (CSC_Matrix * matrix );
3131
32- CSC_Matrix * csr_to_csc (const CSR_Matrix * A );
33-
34- /* Allocate sparsity pattern for C = A^T D A for diagonal D */
32+ /* Fill sparsity of C = A^T D A for diagonal D */
3533CSR_Matrix * ATA_alloc (const CSC_Matrix * A );
3634
37- /* Allocate sparsity pattern for C = B^T D A for diagonal D */
35+ /* Fill sparsity of C = B^T D A for diagonal D */
3836CSR_Matrix * BTA_alloc (const CSC_Matrix * A , const CSC_Matrix * B );
3937
40- /* Compute values for C = A^T D A. C must have precomputed sparsity pattern */
38+ /* Fill sparsity of C = BA, where B is symmetric. */
39+ CSC_Matrix * symBA_alloc (const CSR_Matrix * B , const CSC_Matrix * A );
40+
41+ /* Compute values for C = A^T D A (null d corresponds to D as identity) */
4142void ATDA_fill_values (const CSC_Matrix * A , const double * d , CSR_Matrix * C );
4243
43- /* Compute values for C = B^T D A. C must have precomputed sparsity pattern */
44+ /* Compute values for C = B^T D A (null d corresonds to D as identity) */
4445void BTDA_fill_values (const CSC_Matrix * A , const CSC_Matrix * B , const double * d ,
4546 CSR_Matrix * C );
4647
47- /* C = z^T A where A is in CSC format and C is assumed to have one row.
48- * C must have column indices pre-computed. Fills in values of C only.
49- */
50- void csc_matvec_fill_values (const CSC_Matrix * A , const double * z , CSR_Matrix * C );
48+ /* Fill values of C = BA. The matrix B does not have to be symmetric */
49+ void BA_fill_values (const CSR_Matrix * B , const CSC_Matrix * A , CSC_Matrix * C );
50+
51+ /* Fill values of C = x^T A. The matrix C must have filled sparsity. */
52+ void yTA_fill_values (const CSC_Matrix * A , const double * x , CSR_Matrix * C );
53+
54+ /* Count nonzero columns of a CSC matrix */
55+ int count_nonzero_cols_csc (const CSC_Matrix * A );
5156
52- CSC_Matrix * csr_to_csc_fill_sparsity (const CSR_Matrix * A , int * iwork );
57+ /* convert from CSR to CSC format */
58+ CSC_Matrix * csr_to_csc_alloc (const CSR_Matrix * A , int * iwork );
5359void csr_to_csc_fill_values (const CSR_Matrix * A , CSC_Matrix * C , int * iwork );
5460
55- CSR_Matrix * csc_to_csr_fill_sparsity (const CSC_Matrix * A , int * iwork );
61+ /* convert from CSC to CSR format */
62+ CSR_Matrix * csc_to_csr_alloc (const CSC_Matrix * A , int * iwork );
5663void csc_to_csr_fill_values (const CSC_Matrix * A , CSR_Matrix * C , int * iwork );
5764
5865#endif /* CSC_MATRIX_H */
0 commit comments