File: mex_get_graph.cpp

package info (click to toggle)
suitesparse 1%3A5.4.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 138,928 kB
  • sloc: ansic: 389,614; cpp: 24,213; makefile: 5,965; fortran: 1,927; java: 1,808; csh: 1,750; ruby: 725; sh: 226; perl: 225; python: 209; sed: 164; awk: 60
file content (32 lines) | stat: -rw-r--r-- 701 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "mongoose_mex.hpp"

namespace Mongoose
{

EdgeCutProblem *mex_get_graph
(
    const mxArray *Gmatlab, /* The sparse matrix            */
    const mxArray *Amatlab  /* The real-valued vertex weights */
)
{
    // Check for valid sparse matrix
    cs_mex_check (0, -1, -1, 1, 1, 1, Gmatlab) ;

    Int n = mxGetN(Gmatlab);
    Int *Gp = (Int*) mxGetJc(Gmatlab);
    Int *Gi = (Int*) mxGetIr(Gmatlab);
    double *Gx = (double*) mxGetPr(Gmatlab);
    double *Gw = (Amatlab) ? (double*) mxGetPr(Amatlab) : NULL;
    Int nz = Gp[n];
    
    EdgeCutProblem *returner = EdgeCutProblem::create(n, nz, Gp, Gi, Gx, Gw);

    if (!returner)
    {
        return NULL;
    }

    return returner;
}

}