11
11
CS_INT ignore, n, *P, *Pinv ;
12
12
if (nargout > 1 || nargin != 2)
14
mexErrMsgTxt ("Usage: C = cs_symperm(A,p)") ;
14
mexErrMsgTxt ("Usage: C = cs_symperm(A,p)") ;
16
16
if (mxIsComplex (pargin [0]))
19
cs_cl Amatrix, *A, *C, *D ;
20
A = cs_cl_mex_get_sparse (&Amatrix, 1, pargin [0]) ;
22
P = cs_dl_mex_get_int (n, pargin [1], &ignore, 1) ; /* get P */
23
Pinv = cs_cl_pinv (P, n) ; /* P=Pinv' */
24
C = cs_cl_symperm (A, Pinv, 1) ; /* C = A(p,p) */
25
D = cs_cl_transpose (C, 1) ; /* sort C */
27
C = cs_cl_transpose (D, 1) ;
29
pargout [0] = cs_cl_mex_put_sparse (&C) ; /* return C */
19
cs_cl Amatrix, *A, *C, *D ;
20
A = cs_cl_mex_get_sparse (&Amatrix, 1, pargin [0]) ;
22
P = cs_dl_mex_get_int (n, pargin [1], &ignore, 1) ; /* get P */
23
Pinv = cs_cl_pinv (P, n) ; /* P=Pinv' */
24
C = cs_cl_symperm (A, Pinv, 1) ; /* C = A(p,p) */
25
D = cs_cl_transpose (C, 1) ; /* sort C */
27
C = cs_cl_transpose (D, 1) ;
29
pargout [0] = cs_cl_mex_put_sparse (&C) ; /* return C */
33
mexErrMsgTxt ("complex matrices not supported") ;
33
mexErrMsgTxt ("complex matrices not supported") ;
38
cs_dl Amatrix, *A, *C, *D ;
39
A = cs_dl_mex_get_sparse (&Amatrix, 1, 1, pargin [0]) ;
41
P = cs_dl_mex_get_int (n, pargin [1], &ignore, 1) ; /* get P */
42
Pinv = cs_dl_pinv (P, n) ; /* P=Pinv' */
43
C = cs_dl_symperm (A, Pinv, 1) ; /* C = A(p,p) */
44
D = cs_dl_transpose (C, 1) ; /* sort C */
46
C = cs_dl_transpose (D, 1) ;
48
pargout [0] = cs_dl_mex_put_sparse (&C) ; /* return C */
38
cs_dl Amatrix, *A, *C, *D ;
39
A = cs_dl_mex_get_sparse (&Amatrix, 1, 1, pargin [0]) ;
41
P = cs_dl_mex_get_int (n, pargin [1], &ignore, 1) ; /* get P */
42
Pinv = cs_dl_pinv (P, n) ; /* P=Pinv' */
43
C = cs_dl_symperm (A, Pinv, 1) ; /* C = A(p,p) */
44
D = cs_dl_transpose (C, 1) ; /* sort C */
46
C = cs_dl_transpose (D, 1) ;
48
pargout [0] = cs_dl_mex_put_sparse (&C) ; /* return C */