typedef double Bipartite_NodeData; typedef double Bipartite_EdgeWeight; typedef struct Bipartite_Edge { ... Bipartite_EdgeWeight weight; Bipartite_NodeData *value; ... } Bipartite_Edge; typedef struct Bipartite_Node { Bipartite_NodeData value; ... } Bipartite_Node; typedef struct Bipartite_NodeList { int len; Bipartite_Node *node; ... } Bipartite_NodeList; typedef struct Bipartite { ... Bipartite_NodeList eNodes; Bipartite_NodeList hNodes; } Bipartite; Flag Bipartite_all_create(int id, int numENodes, int numHNodes, Flag *flagPtr, Counter *ctr); Bipartite *Bipartite_toLocal(int id); Flag Bipartite_all_destroy(int id, Counter *ctr); Flag Bipartite_addEtoH(int id, int fromNode, int toProc, int toNode, Bipartite_EdgeWeight weight); Flag Bipartite_addHtoE(int id, int fromNode, int toProc, int toNode, Bipartite_EdgeWeight weight); Flag Bipartite_all_connect(int id, Counter *ctr); Flag Bipartite_all_eValidate(int id, Counter *ctr); Flag Bipartite_all_hValidate(int id, Counter *ctr); Bipartite_for_eNodes(Bipartite *graphPtr, Bipartite_Node *nodePtr, int nodeCnt) Bipartite_for_hNodes(Bipartite *graphPtr, Bipartite_Node *nodePtr, int nodeCnt) Bipartite_for_edges(Bipartite_Node *nodePtr, Bipartite_Edge *edgePtr, int edgeCnt)