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

« back to all changes in this revision

Viewing changes to CXSparse_newfiles/MATLAB/CSparse/cs_cholsol_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 order ;
12
12
    if (nargout > 1 || nargin < 2 || nargin > 3)
13
13
    {
14
 
        mexErrMsgTxt ("Usage: x = cs_cholsol(A,b,order)") ;
 
14
        mexErrMsgTxt ("Usage: x = cs_cholsol(A,b,order)") ;
15
15
    }
16
16
    order = (nargin < 3) ? 1 : mxGetScalar (pargin [2]) ;
17
17
    order = CS_MAX (order, 0) ;
19
19
    if (mxIsComplex (pargin [0]) || mxIsComplex (pargin [1]))
20
20
    {
21
21
#ifndef NCOMPLEX
22
 
        cs_cl *A, Amatrix ;
23
 
        cs_complex_t *x ;
24
 
        A = cs_cl_mex_get_sparse (&Amatrix, 1, pargin [0]) ;    /* get A */
25
 
        x = cs_cl_mex_get_double (A->n, pargin [1]) ;           /* x = b */
26
 
        if (!cs_cl_cholsol (order, A, x))                       /* x = A\x */
27
 
        {
28
 
            mexErrMsgTxt ("A not positive definite") ;
29
 
        }
30
 
        cs_free (A->x) ;
31
 
        pargout [0] = cs_cl_mex_put_double (A->n, x) ;      /* return x */
 
22
        cs_cl *A, Amatrix ;
 
23
        cs_complex_t *x ;
 
24
        A = cs_cl_mex_get_sparse (&Amatrix, 1, pargin [0]) ;    /* get A */
 
25
        x = cs_cl_mex_get_double (A->n, pargin [1]) ;           /* x = b */
 
26
        if (!cs_cl_cholsol (order, A, x))                       /* x = A\x */
 
27
        {
 
28
            mexErrMsgTxt ("A not positive definite") ;
 
29
        }
 
30
        cs_free (A->x) ;
 
31
        pargout [0] = cs_cl_mex_put_double (A->n, x) ;      /* return x */
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 *A, Amatrix ;
39
 
        double *x, *b ;
40
 
        A = cs_dl_mex_get_sparse (&Amatrix, 1, 1, pargin [0]) ; /* get A */
41
 
        b = cs_dl_mex_get_double (A->n, pargin [1]) ;           /* get b */
42
 
        x = cs_dl_mex_put_double (A->n, b, &(pargout [0])) ;    /* x = b */
43
 
        if (!cs_dl_cholsol (order, A, x))                   /* x = A\x */
44
 
        {
45
 
            mexErrMsgTxt ("A not positive definite") ;
46
 
        }
 
38
        cs_dl *A, Amatrix ;
 
39
        double *x, *b ;
 
40
        A = cs_dl_mex_get_sparse (&Amatrix, 1, 1, pargin [0]) ; /* get A */
 
41
        b = cs_dl_mex_get_double (A->n, pargin [1]) ;           /* get b */
 
42
        x = cs_dl_mex_put_double (A->n, b, &(pargout [0])) ;    /* x = b */
 
43
        if (!cs_dl_cholsol (order, A, x))                   /* x = A\x */
 
44
        {
 
45
            mexErrMsgTxt ("A not positive definite") ;
 
46
        }
47
47
    }
48
48
}