3
3
/* ========================================================================== */
5
5
/* -----------------------------------------------------------------------------
6
* CHOLMOD/MATLAB Module. Version 1.3. Copyright (C) 2005-2006,
6
* CHOLMOD/MATLAB Module. Copyright (C) 2005-2006, Timothy A. Davis
8
7
* The CHOLMOD/MATLAB Module is licensed under Version 2.0 of the GNU
9
8
* General Public License. See gpl.txt for a text of the license.
10
9
* CHOLMOD is also available under other licenses; contact authors for details.
45
44
cholmod_sparse *A = NULL, *Z = NULL ;
46
45
cholmod_triplet *T ;
47
46
cholmod_common Common, *cm ;
48
int *Ti, *Tj, *Ap, *Ai, *Zp, *Zi ;
47
Int *Ti, *Tj, *Ap, *Ai, *Zp, *Zi ;
49
48
double *Tx, *Tz, *Ax, *Az, *Zx ;
50
49
char filename [MAXLEN] ;
51
int nz, i, j, k, is_complex, p, nrow, ncol, pz, nzeros, mtype, allzero ;
50
Int nz, i, j, k, is_complex, p, nrow, ncol, pz, nzeros, allzero ;
53
53
/* ---------------------------------------------------------------------- */
54
54
/* start CHOLMOD and set parameters */
55
55
/* ---------------------------------------------------------------------- */
58
cholmod_l_start (cm) ;
59
59
sputil_config (SPUMONI, cm) ;
61
61
/* ---------------------------------------------------------------------- */
85
85
/* read the matrix, as either a dense or sparse matrix */
86
86
/* ---------------------------------------------------------------------- */
88
G = cholmod_read_matrix (sputil_file, 1, &mtype, cm) ;
88
G = cholmod_l_read_matrix (sputil_file, 1, &mtype, cm) ;
89
89
fclose (sputil_file) ;
90
90
sputil_file = NULL ;
107
107
/* if complex, ensure A is ZOMPLEX */
108
cholmod_sparse_xtype (CHOLMOD_ZOMPLEX, A, cm) ;
108
cholmod_l_sparse_xtype (CHOLMOD_ZOMPLEX, A, cm) ;
121
121
/* if complex, ensure X is ZOMPLEX */
122
cholmod_dense_xtype (CHOLMOD_ZOMPLEX, X, cm) ;
122
cholmod_l_dense_xtype (CHOLMOD_ZOMPLEX, X, cm) ;
145
145
/* input is full; just return an empty Z matrix */
146
Z = cholmod_spzeros (nrow, ncol, 0, CHOLMOD_REAL, cm) ;
146
Z = cholmod_l_spzeros (nrow, ncol, 0, CHOLMOD_REAL, cm) ;
154
154
if (mtype == CHOLMOD_SPARSE)
156
156
sputil_drop_zeros (A) ;
157
cholmod_reallocate_sparse (cholmod_nnz (A, cm), A, cm) ;
157
cholmod_l_reallocate_sparse (cholmod_l_nnz (A, cm), A, cm) ;
160
160
/* ---------------------------------------------------------------------- */
185
185
/* discard the all-zero imaginary part */
186
186
if (mtype == CHOLMOD_SPARSE)
188
cholmod_sparse_xtype (CHOLMOD_REAL, A, cm) ;
188
cholmod_l_sparse_xtype (CHOLMOD_REAL, A, cm) ;
192
cholmod_dense_xtype (CHOLMOD_REAL, X, cm) ;
192
cholmod_l_dense_xtype (CHOLMOD_REAL, X, cm) ;