1 /*
2  * proto.h
3  *
4  * This file contains function prototypes
5  *
6  * Started 11/1/99
7  * George
8  *
9  * $Id: proto.h 10513 2011-07-07 22:06:03Z karypis $
10  *
11  */
12 
13 #ifndef _PROTOBIN_H_
14 #define _PROTOBIN_H_
15 
16 
17 /* io.c */
18 graph_t *ReadGraph(params_t *);
19 mesh_t *ReadMesh(params_t *);
20 void ReadTPwgts(params_t *params, idx_t ncon);
21 void ReadPOVector(graph_t *graph, char *filename, idx_t *vector);
22 void WritePartition(char *, idx_t *, idx_t, idx_t);
23 void WriteMeshPartition(char *, idx_t, idx_t, idx_t *, idx_t, idx_t *);
24 void WritePermutation(char *, idx_t *, idx_t);
25 void WriteGraph(graph_t *graph, char *filename);
26 
27 
28 /* smbfactor.c */
29 void ComputeFillIn(graph_t *graph, idx_t *perm, idx_t *iperm,
30          size_t *r_maxlnz, size_t *r_opc);
31 idx_t smbfct(idx_t neqns, idx_t *xadj, idx_t *adjncy, idx_t *perm,
32           idx_t *invp, idx_t *xlnz, idx_t *maxlnz, idx_t *xnzsub,
33           idx_t *nzsub, idx_t *maxsub);
34 
35 
36 /* cmdline.c */
37 params_t *parse_cmdline(int argc, char *argv[]);
38 
39 /* gpmetis.c */
40 void GPPrintInfo(params_t *params, graph_t *graph);
41 void GPReportResults(params_t *params, graph_t *graph, idx_t *part, idx_t edgecut);
42 
43 /* ndmetis.c */
44 void NDPrintInfo(params_t *params, graph_t *graph);
45 void NDReportResults(params_t *params, graph_t *graph, idx_t *perm, idx_t *iperm);
46 
47 /* mpmetis.c */
48 void MPPrintInfo(params_t *params, mesh_t *mesh);
49 void MPReportResults(params_t *params, mesh_t *mesh, idx_t *epart, idx_t *npart,
50          idx_t edgecut);
51 
52 /* m2gmetis.c */
53 void M2GPrintInfo(params_t *params, mesh_t *mesh);
54 void M2GReportResults(params_t *params, mesh_t *mesh, graph_t *graph);
55 
56 /* stat.c */
57 void ComputePartitionInfo(params_t *params, graph_t *graph, idx_t *where);
58 
59 
60 #endif
61