00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _PROTOBIN_H_
00014 #define _PROTOBIN_H_
00015
00016
00017
00018 graph_t *ReadGraph(params_t *);
00019 mesh_t *ReadMesh(params_t *);
00020 void ReadTPwgts(params_t *params, idx_t ncon);
00021 void ReadPOVector(graph_t *graph, char *filename, idx_t *vector);
00022 void WritePartition(char *, idx_t *, idx_t, idx_t);
00023 void WriteMeshPartition(char *, idx_t, idx_t, idx_t *, idx_t, idx_t *);
00024 void WritePermutation(char *, idx_t *, idx_t);
00025 void WriteGraph(graph_t *graph, char *filename);
00026
00027
00028
00029 void ComputeFillIn(graph_t *graph, idx_t *perm, idx_t *iperm,
00030 size_t *r_maxlnz, size_t *r_opc);
00031 idx_t smbfct(idx_t neqns, idx_t *xadj, idx_t *adjncy, idx_t *perm,
00032 idx_t *invp, idx_t *xlnz, idx_t *maxlnz, idx_t *xnzsub,
00033 idx_t *nzsub, idx_t *maxsub);
00034
00035
00036
00037 params_t *parse_cmdline(int argc, char *argv[]);
00038
00039
00040 void GPPrintInfo(params_t *params, graph_t *graph);
00041 void GPReportResults(params_t *params, graph_t *graph, idx_t *part, idx_t edgecut);
00042
00043
00044 void NDPrintInfo(params_t *params, graph_t *graph);
00045 void NDReportResults(params_t *params, graph_t *graph, idx_t *perm, idx_t *iperm);
00046
00047
00048 void MPPrintInfo(params_t *params, mesh_t *mesh);
00049 void MPReportResults(params_t *params, mesh_t *mesh, idx_t *epart, idx_t *npart,
00050 idx_t edgecut);
00051
00052
00053 void M2GPrintInfo(params_t *params, mesh_t *mesh);
00054 void M2GReportResults(params_t *params, mesh_t *mesh, graph_t *graph);
00055
00056
00057 void ComputePartitionInfo(params_t *params, graph_t *graph, idx_t *where);
00058
00059
00060 #endif