2
/* cs_droptol: remove small entries from A */
8
const mxArray *pargin [ ]
13
if (nargout > 1 || nargin != 2)
15
mexErrMsgTxt ("Usage: C = cs_droptol(A,tol)") ;
17
tol = mxGetScalar (pargin [1]) ; /* get tol */
19
if (mxIsComplex (pargin [0]))
22
cs_cl Amatrix, *C, *A ;
23
A = cs_cl_mex_get_sparse (&Amatrix, 0, pargin [0]) ; /* get A */
24
C = cs_cl_spalloc (A->m, A->n, A->nzmax, 1, 0) ; /* C = A */
25
for (j = 0 ; j <= A->n ; j++) C->p [j] = A->p [j] ;
26
for (k = 0 ; k < A->nzmax ; k++) C->i [k] = A->i [k] ;
27
for (k = 0 ; k < A->nzmax ; k++) C->x [k] = A->x [k] ;
28
cs_cl_droptol (C, tol) ; /* drop from C */
29
pargout [0] = cs_cl_mex_put_sparse (&C) ; /* return C */
31
mexErrMsgTxt ("complex matrices not supported") ;
36
cs_dl Amatrix, *C, *A ;
37
A = cs_dl_mex_get_sparse (&Amatrix, 0, 1, pargin [0]) ; /* get A */
38
C = cs_dl_spalloc (A->m, A->n, A->nzmax, 1, 0) ; /* C = A */
39
for (j = 0 ; j <= A->n ; j++) C->p [j] = A->p [j] ;
40
for (k = 0 ; k < A->nzmax ; k++) C->i [k] = A->i [k] ;
41
for (k = 0 ; k < A->nzmax ; k++) C->x [k] = A->x [k] ;
42
cs_dl_droptol (C, tol) ; /* drop from C */
43
pargout [0] = cs_dl_mex_put_sparse (&C) ; /* return C */