aboutsummaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/ccgraph.c
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-10-01 08:55:28 -0800
committerTor Aamodt <[email protected]>2010-10-01 08:55:28 -0800
commit11b308e7363e937966b035b4891db32b4eece3bf (patch)
tree50ca4c9ad6f163ac4acb2bf505e64dfebed66947 /benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/ccgraph.c
parentbb820c116764d7a1b8e071137d32b74e7f34dd2f (diff)
integrating recent changes from fermi-test into fermi
(i'll use "fermi" for more disruptive changes to the pipeline model such as updating the MSHRs and getting rid of the warp tracker, ripping out DWF, etc...) [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7805]
Diffstat (limited to 'benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/ccgraph.c')
-rw-r--r--benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/ccgraph.c599
1 files changed, 0 insertions, 599 deletions
diff --git a/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/ccgraph.c b/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/ccgraph.c
deleted file mode 100644
index 3485ab0..0000000
--- a/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/ccgraph.c
+++ /dev/null
@@ -1,599 +0,0 @@
-/*
- * Copyright 1997, Regents of the University of Minnesota
- *
- * ccgraph.c
- *
- * This file contains the functions that create the coarse graph
- *
- * Started 8/11/97
- * George
- *
- * $Id: ccgraph.c,v 1.1 2003/07/16 15:55:00 karypis Exp $
- *
- */
-
-#include <metis.h>
-
-
-
-/*************************************************************************
-* This function creates the coarser graph
-**************************************************************************/
-void CreateCoarseGraph(CtrlType *ctrl, GraphType *graph, int cnvtxs, idxtype *match, idxtype *perm)
-{
- int i, j, jj, k, kk, l, m, istart, iend, nvtxs, nedges, ncon, cnedges, v, u, mask, dovsize;
- idxtype *xadj, *vwgt, *vsize, *adjncy, *adjwgt, *adjwgtsum, *auxadj;
- idxtype *cmap, *htable;
- idxtype *cxadj, *cvwgt, *cvsize, *cadjncy, *cadjwgt, *cadjwgtsum;
- float *nvwgt, *cnvwgt;
- GraphType *cgraph;
-
- dovsize = (ctrl->optype == OP_KVMETIS ? 1 : 0);
-
- mask = HTLENGTH;
- if (cnvtxs < 8*mask || graph->nedges/graph->nvtxs > 15) {
- CreateCoarseGraphNoMask(ctrl, graph, cnvtxs, match, perm);
- return;
- }
-
- IFSET(ctrl->dbglvl, DBG_TIME, starttimer(ctrl->ContractTmr));
-
- nvtxs = graph->nvtxs;
- ncon = graph->ncon;
- xadj = graph->xadj;
- vwgt = graph->vwgt;
- vsize = graph->vsize;
- nvwgt = graph->nvwgt;
- adjncy = graph->adjncy;
- adjwgt = graph->adjwgt;
- adjwgtsum = graph->adjwgtsum;
- cmap = graph->cmap;
-
- /* Initialize the coarser graph */
- cgraph = SetUpCoarseGraph(graph, cnvtxs, dovsize);
- cxadj = cgraph->xadj;
- cvwgt = cgraph->vwgt;
- cvsize = cgraph->vsize;
- cnvwgt = cgraph->nvwgt;
- cadjwgtsum = cgraph->adjwgtsum;
- cadjncy = cgraph->adjncy;
- cadjwgt = cgraph->adjwgt;
-
-
- iend = xadj[nvtxs];
- auxadj = ctrl->wspace.auxcore;
- memcpy(auxadj, adjncy, iend*sizeof(idxtype));
- for (i=0; i<iend; i++)
- auxadj[i] = cmap[auxadj[i]];
-
- htable = idxset(mask+1, -1, idxwspacemalloc(ctrl, mask+1));
-
- cxadj[0] = cnvtxs = cnedges = 0;
- for (i=0; i<nvtxs; i++) {
- v = perm[i];
- if (cmap[v] != cnvtxs)
- continue;
-
- u = match[v];
- if (ncon == 1)
- cvwgt[cnvtxs] = vwgt[v];
- else
- scopy(ncon, nvwgt+v*ncon, cnvwgt+cnvtxs*ncon);
-
- if (dovsize)
- cvsize[cnvtxs] = vsize[v];
-
- cadjwgtsum[cnvtxs] = adjwgtsum[v];
- nedges = 0;
-
- istart = xadj[v];
- iend = xadj[v+1];
- for (j=istart; j<iend; j++) {
- k = auxadj[j];
- kk = k&mask;
- if ((m = htable[kk]) == -1) {
- cadjncy[nedges] = k;
- cadjwgt[nedges] = adjwgt[j];
- htable[kk] = nedges++;
- }
- else if (cadjncy[m] == k) {
- cadjwgt[m] += adjwgt[j];
- }
- else {
- for (jj=0; jj<nedges; jj++) {
- if (cadjncy[jj] == k) {
- cadjwgt[jj] += adjwgt[j];
- break;
- }
- }
- if (jj == nedges) {
- cadjncy[nedges] = k;
- cadjwgt[nedges++] = adjwgt[j];
- }
- }
- }
-
- if (v != u) {
- if (ncon == 1)
- cvwgt[cnvtxs] += vwgt[u];
- else
- saxpy(ncon, 1.0, nvwgt+u*ncon, 1, cnvwgt+cnvtxs*ncon, 1);
-
- if (dovsize)
- cvsize[cnvtxs] += vsize[u];
-
- cadjwgtsum[cnvtxs] += adjwgtsum[u];
-
- istart = xadj[u];
- iend = xadj[u+1];
- for (j=istart; j<iend; j++) {
- k = auxadj[j];
- kk = k&mask;
- if ((m = htable[kk]) == -1) {
- cadjncy[nedges] = k;
- cadjwgt[nedges] = adjwgt[j];
- htable[kk] = nedges++;
- }
- else if (cadjncy[m] == k) {
- cadjwgt[m] += adjwgt[j];
- }
- else {
- for (jj=0; jj<nedges; jj++) {
- if (cadjncy[jj] == k) {
- cadjwgt[jj] += adjwgt[j];
- break;
- }
- }
- if (jj == nedges) {
- cadjncy[nedges] = k;
- cadjwgt[nedges++] = adjwgt[j];
- }
- }
- }
-
- /* Remove the contracted adjacency weight */
- jj = htable[cnvtxs&mask];
- if (jj >= 0 && cadjncy[jj] != cnvtxs) {
- for (jj=0; jj<nedges; jj++) {
- if (cadjncy[jj] == cnvtxs)
- break;
- }
- }
- if (jj >= 0 && cadjncy[jj] == cnvtxs) { /* This 2nd check is needed for non-adjacent matchings */
- cadjwgtsum[cnvtxs] -= cadjwgt[jj];
- cadjncy[jj] = cadjncy[--nedges];
- cadjwgt[jj] = cadjwgt[nedges];
- }
- }
-
- ASSERTP(cadjwgtsum[cnvtxs] == idxsum(nedges, cadjwgt), ("%d %d %d %d %d\n", cnvtxs, cadjwgtsum[cnvtxs], idxsum(nedges, cadjwgt), adjwgtsum[u], adjwgtsum[v]));
-
- for (j=0; j<nedges; j++)
- htable[cadjncy[j]&mask] = -1; /* Zero out the htable */
- htable[cnvtxs&mask] = -1;
-
- cnedges += nedges;
- cxadj[++cnvtxs] = cnedges;
- cadjncy += nedges;
- cadjwgt += nedges;
- }
-
- cgraph->nedges = cnedges;
-
- ReAdjustMemory(graph, cgraph, dovsize);
-
- IFSET(ctrl->dbglvl, DBG_TIME, stoptimer(ctrl->ContractTmr));
-
- idxwspacefree(ctrl, mask+1);
-
-}
-
-
-/*************************************************************************
-* This function creates the coarser graph
-**************************************************************************/
-void CreateCoarseGraphNoMask(CtrlType *ctrl, GraphType *graph, int cnvtxs, idxtype *match, idxtype *perm)
-{
- int i, j, k, m, istart, iend, nvtxs, nedges, ncon, cnedges, v, u, dovsize;
- idxtype *xadj, *vwgt, *vsize, *adjncy, *adjwgt, *adjwgtsum, *auxadj;
- idxtype *cmap, *htable;
- idxtype *cxadj, *cvwgt, *cvsize, *cadjncy, *cadjwgt, *cadjwgtsum;
- float *nvwgt, *cnvwgt;
- GraphType *cgraph;
-
- dovsize = (ctrl->optype == OP_KVMETIS ? 1 : 0);
-
- IFSET(ctrl->dbglvl, DBG_TIME, starttimer(ctrl->ContractTmr));
-
- nvtxs = graph->nvtxs;
- ncon = graph->ncon;
- xadj = graph->xadj;
- vwgt = graph->vwgt;
- vsize = graph->vsize;
- nvwgt = graph->nvwgt;
- adjncy = graph->adjncy;
- adjwgt = graph->adjwgt;
- adjwgtsum = graph->adjwgtsum;
- cmap = graph->cmap;
-
-
- /* Initialize the coarser graph */
- cgraph = SetUpCoarseGraph(graph, cnvtxs, dovsize);
- cxadj = cgraph->xadj;
- cvwgt = cgraph->vwgt;
- cvsize = cgraph->vsize;
- cnvwgt = cgraph->nvwgt;
- cadjwgtsum = cgraph->adjwgtsum;
- cadjncy = cgraph->adjncy;
- cadjwgt = cgraph->adjwgt;
-
-
- htable = idxset(cnvtxs, -1, idxwspacemalloc(ctrl, cnvtxs));
-
- iend = xadj[nvtxs];
- auxadj = ctrl->wspace.auxcore;
- memcpy(auxadj, adjncy, iend*sizeof(idxtype));
- for (i=0; i<iend; i++)
- auxadj[i] = cmap[auxadj[i]];
-
- cxadj[0] = cnvtxs = cnedges = 0;
- for (i=0; i<nvtxs; i++) {
- v = perm[i];
- if (cmap[v] != cnvtxs)
- continue;
-
- u = match[v];
- if (ncon == 1)
- cvwgt[cnvtxs] = vwgt[v];
- else
- scopy(ncon, nvwgt+v*ncon, cnvwgt+cnvtxs*ncon);
-
- if (dovsize)
- cvsize[cnvtxs] = vsize[v];
-
- cadjwgtsum[cnvtxs] = adjwgtsum[v];
- nedges = 0;
-
- istart = xadj[v];
- iend = xadj[v+1];
- for (j=istart; j<iend; j++) {
- k = auxadj[j];
- if ((m = htable[k]) == -1) {
- cadjncy[nedges] = k;
- cadjwgt[nedges] = adjwgt[j];
- htable[k] = nedges++;
- }
- else {
- cadjwgt[m] += adjwgt[j];
- }
- }
-
- if (v != u) {
- if (ncon == 1)
- cvwgt[cnvtxs] += vwgt[u];
- else
- saxpy(ncon, 1.0, nvwgt+u*ncon, 1, cnvwgt+cnvtxs*ncon, 1);
-
- if (dovsize)
- cvsize[cnvtxs] += vsize[u];
-
- cadjwgtsum[cnvtxs] += adjwgtsum[u];
-
- istart = xadj[u];
- iend = xadj[u+1];
- for (j=istart; j<iend; j++) {
- k = auxadj[j];
- if ((m = htable[k]) == -1) {
- cadjncy[nedges] = k;
- cadjwgt[nedges] = adjwgt[j];
- htable[k] = nedges++;
- }
- else {
- cadjwgt[m] += adjwgt[j];
- }
- }
-
- /* Remove the contracted adjacency weight */
- if ((j = htable[cnvtxs]) != -1) {
- ASSERT(cadjncy[j] == cnvtxs);
- cadjwgtsum[cnvtxs] -= cadjwgt[j];
- cadjncy[j] = cadjncy[--nedges];
- cadjwgt[j] = cadjwgt[nedges];
- htable[cnvtxs] = -1;
- }
- }
-
- ASSERTP(cadjwgtsum[cnvtxs] == idxsum(nedges, cadjwgt), ("%d %d\n", cadjwgtsum[cnvtxs], idxsum(nedges, cadjwgt)));
-
- for (j=0; j<nedges; j++)
- htable[cadjncy[j]] = -1; /* Zero out the htable */
-
- cnedges += nedges;
- cxadj[++cnvtxs] = cnedges;
- cadjncy += nedges;
- cadjwgt += nedges;
- }
-
- cgraph->nedges = cnedges;
-
- ReAdjustMemory(graph, cgraph, dovsize);
-
- IFSET(ctrl->dbglvl, DBG_TIME, stoptimer(ctrl->ContractTmr));
-
- idxwspacefree(ctrl, cnvtxs);
-}
-
-
-/*************************************************************************
-* This function creates the coarser graph
-**************************************************************************/
-void CreateCoarseGraph_NVW(CtrlType *ctrl, GraphType *graph, int cnvtxs, idxtype *match, idxtype *perm)
-{
- int i, j, jj, k, kk, l, m, istart, iend, nvtxs, nedges, ncon, cnedges, v, u, mask;
- idxtype *xadj, *adjncy, *adjwgtsum, *auxadj;
- idxtype *cmap, *htable;
- idxtype *cxadj, *cvwgt, *cadjncy, *cadjwgt, *cadjwgtsum;
- float *nvwgt, *cnvwgt;
- GraphType *cgraph;
-
-
- IFSET(ctrl->dbglvl, DBG_TIME, starttimer(ctrl->ContractTmr));
-
- nvtxs = graph->nvtxs;
- ncon = graph->ncon;
- xadj = graph->xadj;
- nvwgt = graph->nvwgt;
- adjncy = graph->adjncy;
- adjwgtsum = graph->adjwgtsum;
- cmap = graph->cmap;
-
- /* Initialize the coarser graph */
- cgraph = SetUpCoarseGraph(graph, cnvtxs, 0);
- cxadj = cgraph->xadj;
- cvwgt = cgraph->vwgt;
- cnvwgt = cgraph->nvwgt;
- cadjwgtsum = cgraph->adjwgtsum;
- cadjncy = cgraph->adjncy;
- cadjwgt = cgraph->adjwgt;
-
-
- iend = xadj[nvtxs];
- auxadj = ctrl->wspace.auxcore;
- memcpy(auxadj, adjncy, iend*sizeof(idxtype));
- for (i=0; i<iend; i++)
- auxadj[i] = cmap[auxadj[i]];
-
- mask = HTLENGTH;
- htable = idxset(mask+1, -1, idxwspacemalloc(ctrl, mask+1));
-
- cxadj[0] = cnvtxs = cnedges = 0;
- for (i=0; i<nvtxs; i++) {
- v = perm[i];
- if (cmap[v] != cnvtxs)
- continue;
-
- u = match[v];
- cvwgt[cnvtxs] = 1;
- cadjwgtsum[cnvtxs] = adjwgtsum[v];
- nedges = 0;
-
- istart = xadj[v];
- iend = xadj[v+1];
- for (j=istart; j<iend; j++) {
- k = auxadj[j];
- kk = k&mask;
- if ((m = htable[kk]) == -1) {
- cadjncy[nedges] = k;
- cadjwgt[nedges] = 1;
- htable[kk] = nedges++;
- }
- else if (cadjncy[m] == k) {
- cadjwgt[m]++;
- }
- else {
- for (jj=0; jj<nedges; jj++) {
- if (cadjncy[jj] == k) {
- cadjwgt[jj]++;
- break;
- }
- }
- if (jj == nedges) {
- cadjncy[nedges] = k;
- cadjwgt[nedges++] = 1;
- }
- }
- }
-
- if (v != u) {
- cvwgt[cnvtxs]++;
- cadjwgtsum[cnvtxs] += adjwgtsum[u];
-
- istart = xadj[u];
- iend = xadj[u+1];
- for (j=istart; j<iend; j++) {
- k = auxadj[j];
- kk = k&mask;
- if ((m = htable[kk]) == -1) {
- cadjncy[nedges] = k;
- cadjwgt[nedges] = 1;
- htable[kk] = nedges++;
- }
- else if (cadjncy[m] == k) {
- cadjwgt[m]++;
- }
- else {
- for (jj=0; jj<nedges; jj++) {
- if (cadjncy[jj] == k) {
- cadjwgt[jj]++;
- break;
- }
- }
- if (jj == nedges) {
- cadjncy[nedges] = k;
- cadjwgt[nedges++] = 1;
- }
- }
- }
-
- /* Remove the contracted adjacency weight */
- jj = htable[cnvtxs&mask];
- if (jj >= 0 && cadjncy[jj] != cnvtxs) {
- for (jj=0; jj<nedges; jj++) {
- if (cadjncy[jj] == cnvtxs)
- break;
- }
- }
- if (jj >= 0 && cadjncy[jj] == cnvtxs) { /* This 2nd check is needed for non-adjacent matchings */
- cadjwgtsum[cnvtxs] -= cadjwgt[jj];
- cadjncy[jj] = cadjncy[--nedges];
- cadjwgt[jj] = cadjwgt[nedges];
- }
- }
-
- ASSERTP(cadjwgtsum[cnvtxs] == idxsum(nedges, cadjwgt), ("%d %d %d %d %d\n", cnvtxs, cadjwgtsum[cnvtxs], idxsum(nedges, cadjwgt), adjwgtsum[u], adjwgtsum[v]));
-
- for (j=0; j<nedges; j++)
- htable[cadjncy[j]&mask] = -1; /* Zero out the htable */
- htable[cnvtxs&mask] = -1;
-
- cnedges += nedges;
- cxadj[++cnvtxs] = cnedges;
- cadjncy += nedges;
- cadjwgt += nedges;
- }
-
- cgraph->nedges = cnedges;
-
- ReAdjustMemory(graph, cgraph, 0);
-
- IFSET(ctrl->dbglvl, DBG_TIME, stoptimer(ctrl->ContractTmr));
-
- idxwspacefree(ctrl, mask+1);
-
-}
-
-
-/*************************************************************************
-* Setup the various arrays for the coarse graph
-**************************************************************************/
-GraphType *SetUpCoarseGraph(GraphType *graph, int cnvtxs, int dovsize)
-{
- GraphType *cgraph;
-
- cgraph = CreateGraph();
- cgraph->nvtxs = cnvtxs;
- cgraph->ncon = graph->ncon;
-
- cgraph->finer = graph;
- graph->coarser = cgraph;
-
-
- /* Allocate memory for the coarser graph */
- if (graph->ncon == 1) {
- if (dovsize) {
- cgraph->gdata = idxmalloc(5*cnvtxs+1 + 2*graph->nedges, "SetUpCoarseGraph: gdata");
- cgraph->xadj = cgraph->gdata;
- cgraph->vwgt = cgraph->gdata + cnvtxs+1;
- cgraph->vsize = cgraph->gdata + 2*cnvtxs+1;
- cgraph->adjwgtsum = cgraph->gdata + 3*cnvtxs+1;
- cgraph->cmap = cgraph->gdata + 4*cnvtxs+1;
- cgraph->adjncy = cgraph->gdata + 5*cnvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 5*cnvtxs+1 + graph->nedges;
- }
- else {
- cgraph->gdata = idxmalloc(4*cnvtxs+1 + 2*graph->nedges, "SetUpCoarseGraph: gdata");
- cgraph->xadj = cgraph->gdata;
- cgraph->vwgt = cgraph->gdata + cnvtxs+1;
- cgraph->adjwgtsum = cgraph->gdata + 2*cnvtxs+1;
- cgraph->cmap = cgraph->gdata + 3*cnvtxs+1;
- cgraph->adjncy = cgraph->gdata + 4*cnvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 4*cnvtxs+1 + graph->nedges;
- }
- }
- else {
- if (dovsize) {
- cgraph->gdata = idxmalloc(4*cnvtxs+1 + 2*graph->nedges, "SetUpCoarseGraph: gdata");
- cgraph->xadj = cgraph->gdata;
- cgraph->vsize = cgraph->gdata + cnvtxs+1;
- cgraph->adjwgtsum = cgraph->gdata + 2*cnvtxs+1;
- cgraph->cmap = cgraph->gdata + 3*cnvtxs+1;
- cgraph->adjncy = cgraph->gdata + 4*cnvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 4*cnvtxs+1 + graph->nedges;
- }
- else {
- cgraph->gdata = idxmalloc(3*cnvtxs+1 + 2*graph->nedges, "SetUpCoarseGraph: gdata");
- cgraph->xadj = cgraph->gdata;
- cgraph->adjwgtsum = cgraph->gdata + cnvtxs+1;
- cgraph->cmap = cgraph->gdata + 2*cnvtxs+1;
- cgraph->adjncy = cgraph->gdata + 3*cnvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 3*cnvtxs+1 + graph->nedges;
- }
-
- cgraph->nvwgt = fmalloc(graph->ncon*cnvtxs, "SetUpCoarseGraph: nvwgt");
- }
-
- return cgraph;
-}
-
-
-/*************************************************************************
-* This function re-adjusts the amount of memory that was allocated if
-* it will lead to significant savings
-**************************************************************************/
-void ReAdjustMemory(GraphType *graph, GraphType *cgraph, int dovsize)
-{
-
- if (cgraph->nedges > 100000 && graph->nedges < 0.7*graph->nedges) {
- idxcopy(cgraph->nedges, cgraph->adjwgt, cgraph->adjncy+cgraph->nedges);
-
- if (graph->ncon == 1) {
- if (dovsize) {
- cgraph->gdata = realloc(cgraph->gdata, (5*cgraph->nvtxs+1 + 2*cgraph->nedges)*sizeof(idxtype));
-
- /* Do this, in case everything was copied into new space */
- cgraph->xadj = cgraph->gdata;
- cgraph->vwgt = cgraph->gdata + cgraph->nvtxs+1;
- cgraph->vsize = cgraph->gdata + 2*cgraph->nvtxs+1;
- cgraph->adjwgtsum = cgraph->gdata + 3*cgraph->nvtxs+1;
- cgraph->cmap = cgraph->gdata + 4*cgraph->nvtxs+1;
- cgraph->adjncy = cgraph->gdata + 5*cgraph->nvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 5*cgraph->nvtxs+1 + cgraph->nedges;
- }
- else {
- cgraph->gdata = realloc(cgraph->gdata, (4*cgraph->nvtxs+1 + 2*cgraph->nedges)*sizeof(idxtype));
-
- /* Do this, in case everything was copied into new space */
- cgraph->xadj = cgraph->gdata;
- cgraph->vwgt = cgraph->gdata + cgraph->nvtxs+1;
- cgraph->adjwgtsum = cgraph->gdata + 2*cgraph->nvtxs+1;
- cgraph->cmap = cgraph->gdata + 3*cgraph->nvtxs+1;
- cgraph->adjncy = cgraph->gdata + 4*cgraph->nvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 4*cgraph->nvtxs+1 + cgraph->nedges;
- }
- }
- else {
- if (dovsize) {
- cgraph->gdata = realloc(cgraph->gdata, (4*cgraph->nvtxs+1 + 2*cgraph->nedges)*sizeof(idxtype));
-
- /* Do this, in case everything was copied into new space */
- cgraph->xadj = cgraph->gdata;
- cgraph->vsize = cgraph->gdata + cgraph->nvtxs+1;
- cgraph->adjwgtsum = cgraph->gdata + 2*cgraph->nvtxs+1;
- cgraph->cmap = cgraph->gdata + 3*cgraph->nvtxs+1;
- cgraph->adjncy = cgraph->gdata + 4*cgraph->nvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 4*cgraph->nvtxs+1 + cgraph->nedges;
- }
- else {
- cgraph->gdata = realloc(cgraph->gdata, (3*cgraph->nvtxs+1 + 2*cgraph->nedges)*sizeof(idxtype));
-
- /* Do this, in case everything was copied into new space */
- cgraph->xadj = cgraph->gdata;
- cgraph->adjwgtsum = cgraph->gdata + cgraph->nvtxs+1;
- cgraph->cmap = cgraph->gdata + 2*cgraph->nvtxs+1;
- cgraph->adjncy = cgraph->gdata + 3*cgraph->nvtxs+1;
- cgraph->adjwgt = cgraph->gdata + 3*cgraph->nvtxs+1 + cgraph->nedges;
- }
- }
- }
-
-}