summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/csrmatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/csrmatch.c')
-rw-r--r--benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/csrmatch.c88
1 files changed, 0 insertions, 88 deletions
diff --git a/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/csrmatch.c b/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/csrmatch.c
deleted file mode 100644
index ace7998..0000000
--- a/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/ParMETISLib/csrmatch.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 1997, Regents of the University of Minnesota
- *
- * csrmatch.c
- *
- * This file contains the code that computes matchings
- *
- * Started 7/23/97
- * George
- *
- * $Id: csrmatch.c,v 1.2 2003/07/21 17:18:48 karypis Exp $
- *
- */
-
-#include <parmetislib.h>
-
-
-
-
-/*************************************************************************
-* This function finds a matching using the HEM heuristic
-**************************************************************************/
-void CSR_Match_SHEM(MatrixType *matrix, idxtype *match, idxtype *mlist,
- idxtype *skip, int ncon)
-{
- int h, i, ii, j;
- int nrows, edge, maxidx, count;
- float maxwgt;
- idxtype *rowptr, *colind;
- float *transfer;
- KVType *links;
-
- nrows = matrix->nrows;
- rowptr = matrix->rowptr;
- colind = matrix->colind;
- transfer = matrix->transfer;
-
- idxset(nrows, UNMATCHED, match);
-
- links = (KVType *)GKmalloc(sizeof(KVType)*nrows, "links");
- for (i=0; i<nrows; i++) {
- links[i].key = i;
- links[i].val = 0.0;
- }
-
- for (i=0; i<nrows; i++)
- for (j=rowptr[i]; j<rowptr[i+1]; j++)
- for (h=0; h<ncon; h++)
- if (links[i].val < fabs(transfer[j*ncon+h]))
- links[i].val = fabs(transfer[j*ncon+h]);
-
- qsort(links, nrows, sizeof(KVType), myvalkeycompare);
-
- count = 0;
- for (ii=0; ii<nrows; ii++) {
- i = links[ii].key;
-
- if (match[i] == UNMATCHED) {
- maxidx = i;
- maxwgt = 0.0;
-
- /* Find a heavy-edge matching */
- for (j=rowptr[i]; j<rowptr[i+1]; j++) {
- edge = colind[j];
- if (match[edge] == UNMATCHED && edge != i && skip[j] == 0) {
- for (h=0; h<ncon; h++)
- if (maxwgt < fabs(transfer[j*ncon+h]))
- break;
-
- if (h != ncon) {
- maxwgt = fabs(transfer[j*ncon+h]);
- maxidx = edge;
- }
- }
- }
-
- if (maxidx != i) {
- match[i] = maxidx;
- match[maxidx] = i;
- mlist[count++] = amax(i, maxidx);
- mlist[count++] = amin(i, maxidx);
- }
- }
- }
-
- GKfree((void **)&links, LTERM);
-}
-