~ubuntu-branches/ubuntu/oneiric/suitesparse/oneiric

« back to all changes in this revision

Viewing changes to CXSparse_newfiles/MATLAB/CSparse/cs_symperm_mex.c

  • Committer: Bazaar Package Importer
  • Author(s): Nick Ellery
  • Date: 2009-06-14 19:15:52 UTC
  • mfrom: (7.2.2 sid)
  • Revision ID: james.westby@ubuntu.com-20090614191552-2hliya5q8n1quseu
Tags: 1:3.4.0-1ubuntu1
* Merge from debian unstable, remaining changes (LP: #387137):
  - debian/control:
    - demote libatlas-doc from recommends to suggests as it is not in main
    - drop recommends on doc-central as it is not in main

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
    CS_INT ignore, n, *P, *Pinv ;
12
12
    if (nargout > 1 || nargin != 2)
13
13
    {
14
 
        mexErrMsgTxt ("Usage: C = cs_symperm(A,p)") ;
 
14
        mexErrMsgTxt ("Usage: C = cs_symperm(A,p)") ;
15
15
    }
16
16
    if (mxIsComplex (pargin [0]))
17
17
    {
18
18
#ifndef NCOMPLEX
19
 
        cs_cl Amatrix, *A, *C, *D ;
20
 
        A = cs_cl_mex_get_sparse (&Amatrix, 1, pargin [0]) ;
21
 
        n = A->n ;
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 */
26
 
        cs_cl_spfree (C) ;
27
 
        C = cs_cl_transpose (D, 1) ;
28
 
        cs_cl_spfree (D) ;
29
 
        pargout [0] = cs_cl_mex_put_sparse (&C) ;               /* return C */
30
 
        cs_free (P) ;
31
 
        cs_free (Pinv) ;
 
19
        cs_cl Amatrix, *A, *C, *D ;
 
20
        A = cs_cl_mex_get_sparse (&Amatrix, 1, pargin [0]) ;
 
21
        n = A->n ;
 
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 */
 
26
        cs_cl_spfree (C) ;
 
27
        C = cs_cl_transpose (D, 1) ;
 
28
        cs_cl_spfree (D) ;
 
29
        pargout [0] = cs_cl_mex_put_sparse (&C) ;               /* return C */
 
30
        cs_free (P) ;
 
31
        cs_free (Pinv) ;
32
32
#else
33
 
        mexErrMsgTxt ("complex matrices not supported") ;
 
33
        mexErrMsgTxt ("complex matrices not supported") ;
34
34
#endif
35
35
    }
36
36
    else
37
37
    {
38
 
        cs_dl Amatrix, *A, *C, *D ;
39
 
        A = cs_dl_mex_get_sparse (&Amatrix, 1, 1, pargin [0]) ;
40
 
        n = A->n ;
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 */
45
 
        cs_dl_spfree (C) ;
46
 
        C = cs_dl_transpose (D, 1) ;
47
 
        cs_dl_spfree (D) ;
48
 
        pargout [0] = cs_dl_mex_put_sparse (&C) ;               /* return C */
49
 
        cs_free (P) ;
50
 
        cs_free (Pinv) ;
 
38
        cs_dl Amatrix, *A, *C, *D ;
 
39
        A = cs_dl_mex_get_sparse (&Amatrix, 1, 1, pargin [0]) ;
 
40
        n = A->n ;
 
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 */
 
45
        cs_dl_spfree (C) ;
 
46
        C = cs_dl_transpose (D, 1) ;
 
47
        cs_dl_spfree (D) ;
 
48
        pargout [0] = cs_dl_mex_put_sparse (&C) ;               /* return C */
 
49
        cs_free (P) ;
 
50
        cs_free (Pinv) ;
51
51
    }
52
52
}