aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/metis/files/metis-5.0_pre2-autotools.patch')
-rw-r--r--sci-libs/metis/files/metis-5.0_pre2-autotools.patch534
1 files changed, 0 insertions, 534 deletions
diff --git a/sci-libs/metis/files/metis-5.0_pre2-autotools.patch b/sci-libs/metis/files/metis-5.0_pre2-autotools.patch
deleted file mode 100644
index 8c052c441..000000000
--- a/sci-libs/metis/files/metis-5.0_pre2-autotools.patch
+++ /dev/null
@@ -1,534 +0,0 @@
---- configure.ac 1970-01-01 01:00:00.000000000 +0100
-+++ configure.ac 2007-09-24 15:12:11.917289395 +0100
-@@ -0,0 +1,54 @@
-+AC_INIT([metis], [5.0pre2], [metis@cs.umn.edu], [metis])
-+AM_INIT_AUTOMAKE([foreign])
-+
-+AC_PROG_MAKE_SET
-+AC_PROG_LIBTOOL
-+
-+AC_CHECK_LIB(m, [sqrt, pow, log])
-+
-+AC_ARG_ENABLE(openmp,
-+ [AC_HELP_STRING([--enable-openmp],
-+ [compile with openmp])],
-+ [enable_openmp=$enableval],
-+ [enable_openmp="yes"])
-+AC_MSG_RESULT($enable_openmp)
-+
-+if test x$enable_openmp = xyes; then
-+ AC_CHECK_HEADERS(omp.h)
-+ OMP_CPPFLAGS=-D__OPENMP__
-+ if test x$CC = xicc; then
-+ OMP_CFLAGS="-openmp -openmp-report2"
-+ OMP_LDFLAGS=-openmp
-+ else
-+ OMP_CFLAGS=-fopenmp
-+ OMP_LDFLAGS=-lgomp
-+ fi
-+fi
-+
-+# very basic pcre check
-+AC_ARG_ENABLE(pcre,
-+ [AC_HELP_STRING([--enable-pcre],
-+ [Enable PCRE regex support])],
-+ [enable_pcre=$enableval],
-+ [enable_pcre="yes"])
-+AC_MSG_RESULT($enable_pcre)
-+if test x$enable_pcre = xyes; then
-+ AC_PATH_PROGS(PCRE_CONFIG, pcre-config, no)
-+ if test "$PCRE_CONFIG" = "no"; then
-+ AC_MSG_ERROR(Unable to find pcre-config in path for PCRE support)
-+ else
-+ AC_CHECK_HEADERS(pcre.h)
-+ PCRE="yes"
-+ PCRE_CPPFLAGS=-D__WITHPCRE__
-+ PCRE_LDFLAGS=-lpcre
-+ fi
-+fi
-+
-+AC_CONFIG_FILES( \
-+ Makefile \
-+ GKlib/trunk/Makefile \
-+ libmetis/Makefile \
-+ programs/Makefile \
-+ test/Makefile
-+)
-+AC_OUTPUT
---- Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ Makefile.am 2007-09-24 15:12:11.921289623 +0100
-@@ -0,0 +1,3 @@
-+SUBDIRS = GKlib/trunk libmetis programs test
-+EXTRA_DIST = CHANGES.v4 CHANGES.v5
-+include_HEADERS = include/metis.h
---- GKlib/trunk/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ GKlib/trunk/Makefile.am 2007-09-24 15:12:11.949291219 +0100
-@@ -0,0 +1,26 @@
-+AM_CPPFLAGS = -DLINUX -D_FILE_OFFSET_BITS=6 $(PCRE_CPPFLAGS) $(OMP_CPPFLAGS)
-+AM_CFLAGS = -std=c99 $(OMP_CFLAGS)
-+
-+noinst_LTLIBRARIES = libgklib.la
-+noinst_HEADERS = GKlib.h
-+
-+libgklib_la_SOURCES = \
-+ b64.c \
-+ blas.c \
-+ dfkvkselect.c \
-+ dlmalloc.c \
-+ error.c \
-+ fs.c \
-+ getopt.c \
-+ htable.c \
-+ io.c \
-+ memory.c \
-+ omp.c \
-+ pdb.c \
-+ seq.c \
-+ sort.c \
-+ string.c \
-+ timers.c \
-+ tokenizer.c \
-+ util.c
-+libgklib_la_LIBADD = $(OMP_LDFLAGS) $(PCRE_LDFLAGS)
---- libmetis/smbfactor.c 1970-01-01 01:00:00.000000000 +0100
-+++ libmetis/smbfactor.c 2007-09-24 15:12:11.949291219 +0100
-@@ -0,0 +1,385 @@
-+/*
-+ * Copyright 1997, Regents of the University of Minnesota
-+ *
-+ * smbfactor.c
-+ *
-+ * This file performs the symbolic factorization of a matrix
-+ *
-+ * Started 8/1/97
-+ * George
-+ *
-+ * $Id: smbfactor.c,v 1.2 2002/08/10 06:02:55 karypis Exp $
-+ *
-+ */
-+
-+#include <metislib.h>
-+
-+
-+/*************************************************************************
-+* This function sets up data structures for fill-in computations
-+**************************************************************************/
-+void ComputeFillIn(GraphType *graph, idxtype *iperm)
-+{
-+ idxtype i, j, k, nvtxs, maxlnz, maxsub;
-+ idxtype *xadj, *adjncy;
-+ idxtype *perm, *xlnz, *xnzsub, *nzsub;
-+ double opc;
-+
-+/*
-+ mprintf("\nSymbolic factorization... --------------------------------------------\n");
-+*/
-+
-+ nvtxs = graph->nvtxs;
-+ xadj = graph->xadj;
-+ adjncy = graph->adjncy;
-+
-+ maxsub = 4*xadj[nvtxs];
-+
-+ /* Relabel the vertices so that it starts from 1 */
-+ k = xadj[nvtxs];
-+ for (i=0; i<k; i++)
-+ adjncy[i]++;
-+ for (i=0; i<nvtxs+1; i++)
-+ xadj[i]++;
-+
-+ /* Allocate the required memory */
-+ perm = idxmalloc(nvtxs+1, "ComputeFillIn: perm");
-+ xlnz = idxmalloc(nvtxs+1, "ComputeFillIn: xlnz");
-+ xnzsub = idxmalloc(nvtxs+1, "ComputeFillIn: xnzsub");
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub");
-+
-+ /* Construct perm from iperm and change the numbering of iperm */
-+ for (i=0; i<nvtxs; i++)
-+ perm[iperm[i]] = i;
-+ for (i=0; i<nvtxs; i++) {
-+ iperm[i]++;
-+ perm[i]++;
-+ }
-+
-+ /*
-+ * Call sparspak routine.
-+ */
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub)) {
-+ gk_free((void **)&nzsub, LTERM);
-+
-+ maxsub = 4*maxsub;
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub");
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub))
-+ errexit("MAXSUB is too small!");
-+ }
-+
-+ opc = 0;
-+ for (i=0; i<nvtxs; i++)
-+ xlnz[i]--;
-+ for (i=0; i<nvtxs; i++)
-+ opc += (xlnz[i+1]-xlnz[i])*(xlnz[i+1]-xlnz[i]) - (xlnz[i+1]-xlnz[i]);
-+
-+ mprintf(" Nonzeros: %D, \tOperation Count: %6.4le\n", maxlnz, opc);
-+
-+
-+ gk_free((void **)&perm, &xlnz, &xnzsub, &nzsub, LTERM);
-+
-+
-+ /* Relabel the vertices so that it starts from 0 */
-+ for (i=0; i<nvtxs; i++)
-+ iperm[i]--;
-+ for (i=0; i<nvtxs+1; i++)
-+ xadj[i]--;
-+ k = xadj[nvtxs];
-+ for (i=0; i<k; i++)
-+ adjncy[i]--;
-+
-+}
-+
-+
-+
-+/*************************************************************************
-+* This function sets up data structures for fill-in computations
-+**************************************************************************/
-+idxtype ComputeFillIn2(GraphType *graph, idxtype *iperm)
-+{
-+ idxtype i, j, k, nvtxs, maxlnz, maxsub;
-+ idxtype *xadj, *adjncy;
-+ idxtype *perm, *xlnz, *xnzsub, *nzsub;
-+ double opc;
-+
-+ nvtxs = graph->nvtxs;
-+ xadj = graph->xadj;
-+ adjncy = graph->adjncy;
-+
-+ maxsub = 4*xadj[nvtxs];
-+
-+ /* Relabel the vertices so that it starts from 1 */
-+ k = xadj[nvtxs];
-+ for (i=0; i<k; i++)
-+ adjncy[i]++;
-+ for (i=0; i<nvtxs+1; i++)
-+ xadj[i]++;
-+
-+ /* Allocate the required memory */
-+ perm = idxmalloc(nvtxs+1, "ComputeFillIn: perm");
-+ xlnz = idxmalloc(nvtxs+1, "ComputeFillIn: xlnz");
-+ xnzsub = idxmalloc(nvtxs+1, "ComputeFillIn: xnzsub");
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub");
-+
-+ /* Construct perm from iperm and change the numbering of iperm */
-+ for (i=0; i<nvtxs; i++)
-+ perm[iperm[i]] = i;
-+ for (i=0; i<nvtxs; i++) {
-+ iperm[i]++;
-+ perm[i]++;
-+ }
-+
-+ /*
-+ * Call sparspak routine.
-+ */
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub)) {
-+ gk_free((void **)&nzsub, LTERM);
-+
-+ maxsub = 4*maxsub;
-+ nzsub = idxmalloc(maxsub, "ComputeFillIn: nzsub");
-+ if (smbfct(nvtxs, xadj, adjncy, perm, iperm, xlnz, &maxlnz, xnzsub, nzsub, &maxsub))
-+ errexit("MAXSUB is too small!");
-+ }
-+
-+ opc = 0;
-+ for (i=0; i<nvtxs; i++)
-+ xlnz[i]--;
-+ for (i=0; i<nvtxs; i++)
-+ opc += (xlnz[i+1]-xlnz[i])*(xlnz[i+1]-xlnz[i]) - (xlnz[i+1]-xlnz[i]);
-+
-+
-+ gk_free((void **)&perm, &xlnz, &xnzsub, &nzsub, LTERM);
-+
-+
-+ /* Relabel the vertices so that it starts from 0 */
-+ for (i=0; i<nvtxs; i++)
-+ iperm[i]--;
-+ for (i=0; i<nvtxs+1; i++)
-+ xadj[i]--;
-+ k = xadj[nvtxs];
-+ for (i=0; i<k; i++)
-+ adjncy[i]--;
-+
-+ return maxlnz;
-+
-+}
-+
-+
-+/*****************************************************************
-+********** SMBFCT ..... SYMBOLIC FACTORIZATION *********
-+******************************************************************
-+* PURPOSE - THIS ROUTINE PERFORMS SYMBOLIC FACTORIZATION
-+* ON A PERMUTED LINEAR SYSTEM AND IT ALSO SETS UP THE
-+* COMPRESSED DATA STRUCTURE FOR THE SYSTEM.
-+*
-+* INPUT PARAMETERS -
-+* NEQNS - NUMBER OF EQUATIONS.
-+* (XADJ, ADJNCY) - THE ADJACENCY STRUCTURE.
-+* (PERM, INVP) - THE PERMUTATION VECTOR AND ITS INVERSE.
-+*
-+* UPDATED PARAMETERS -
-+* MAXSUB - SIZE OF THE SUBSCRIPT ARRAY NZSUB. ON RETURN,
-+* IT CONTAINS THE NUMBER OF SUBSCRIPTS USED
-+*
-+* OUTPUT PARAMETERS -
-+* XLNZ - INDEX INTO THE NONZERO STORAGE VECTOR LNZ.
-+* (XNZSUB, NZSUB) - THE COMPRESSED SUBSCRIPT VECTORS.
-+* MAXLNZ - THE NUMBER OF NONZEROS FOUND.
-+*
-+*******************************************************************/
-+idxtype smbfct(idxtype neqns, idxtype *xadj, idxtype *adjncy, idxtype *perm, idxtype *invp,
-+ idxtype *xlnz, idxtype *maxlnz, idxtype *xnzsub, idxtype *nzsub, idxtype *maxsub)
-+{
-+ /* Local variables */
-+ idxtype node, rchm, mrgk, lmax, i, j, k, m, nabor, nzbeg, nzend;
-+ idxtype kxsub, jstop, jstrt, mrkflg, inz, knz, flag;
-+ idxtype *mrglnk, *marker, *rchlnk;
-+
-+ rchlnk = idxmalloc(neqns+1, "smbfct: rchlnk");
-+ marker = idxsmalloc(neqns+1, 0, "smbfct: marker");
-+ mrglnk = idxsmalloc(neqns+1, 0, "smbfct: mgrlnk");
-+
-+ /* Parameter adjustments */
-+ --marker;
-+ --mrglnk;
-+ --rchlnk;
-+ --nzsub;
-+ --xnzsub;
-+ --xlnz;
-+ --invp;
-+ --perm;
-+ --adjncy;
-+ --xadj;
-+
-+ /* Function Body */
-+ flag = 0;
-+ nzbeg = 1;
-+ nzend = 0;
-+ xlnz[1] = 1;
-+
-+ /* FOR EACH COLUMN KNZ COUNTS THE NUMBER OF NONZEROS IN COLUMN K ACCUMULATED IN RCHLNK. */
-+ for (k = 1; k <= neqns; ++k) {
-+ knz = 0;
-+ mrgk = mrglnk[k];
-+ mrkflg = 0;
-+ marker[k] = k;
-+ if (mrgk != 0)
-+ marker[k] = marker[mrgk];
-+ xnzsub[k] = nzend;
-+ node = perm[k];
-+
-+ if (xadj[node] >= xadj[node+1]) {
-+ xlnz[k+1] = xlnz[k];
-+ continue;
-+ }
-+
-+ /* USE RCHLNK TO LINK THROUGH THE STRUCTURE OF A(*,K) BELOW DIAGONAL */
-+ rchlnk[k] = neqns+1;
-+ for (j=xadj[node]; j<xadj[node+1]; j++) {
-+ nabor = invp[adjncy[j]];
-+ if (nabor <= k)
-+ continue;
-+ rchm = k;
-+
-+ do {
-+ m = rchm;
-+ rchm = rchlnk[m];
-+ } while (rchm <= nabor);
-+
-+ knz++;
-+ rchlnk[m] = nabor;
-+ rchlnk[nabor] = rchm;
-+ if (marker[nabor] != marker[k])
-+ mrkflg = 1;
-+ }
-+
-+ /* TEST FOR MASS SYMBOLIC ELIMINATION */
-+ lmax = 0;
-+ if (mrkflg != 0 || mrgk == 0 || mrglnk[mrgk] != 0)
-+ goto L350;
-+ xnzsub[k] = xnzsub[mrgk] + 1;
-+ knz = xlnz[mrgk + 1] - (xlnz[mrgk] + 1);
-+ goto L1400;
-+
-+
-+ /* LINK THROUGH EACH COLUMN I THAT AFFECTS L(*,K) */
-+L350:
-+ i = k;
-+ while ((i = mrglnk[i]) != 0) {
-+ inz = xlnz[i+1] - (xlnz[i]+1);
-+ jstrt = xnzsub[i] + 1;
-+ jstop = xnzsub[i] + inz;
-+
-+ if (inz > lmax) {
-+ lmax = inz;
-+ xnzsub[k] = jstrt;
-+ }
-+
-+ /* MERGE STRUCTURE OF L(*,I) IN NZSUB INTO RCHLNK. */
-+ rchm = k;
-+ for (j = jstrt; j <= jstop; ++j) {
-+ nabor = nzsub[j];
-+ do {
-+ m = rchm;
-+ rchm = rchlnk[m];
-+ } while (rchm < nabor);
-+
-+ if (rchm != nabor) {
-+ knz++;
-+ rchlnk[m] = nabor;
-+ rchlnk[nabor] = rchm;
-+ rchm = nabor;
-+ }
-+ }
-+ }
-+
-+ /* CHECK IF SUBSCRIPTS DUPLICATE THOSE OF ANOTHER COLUMN */
-+ if (knz == lmax)
-+ goto L1400;
-+
-+ /* OR IF TAIL OF K-1ST COLUMN MATCHES HEAD OF KTH */
-+ if (nzbeg > nzend)
-+ goto L1200;
-+
-+ i = rchlnk[k];
-+ for (jstrt = nzbeg; jstrt <= nzend; ++jstrt) {
-+ if (nzsub[jstrt] < i)
-+ continue;
-+
-+ if (nzsub[jstrt] == i)
-+ goto L1000;
-+ else
-+ goto L1200;
-+ }
-+ goto L1200;
-+
-+L1000:
-+ xnzsub[k] = jstrt;
-+ for (j = jstrt; j <= nzend; ++j) {
-+ if (nzsub[j] != i)
-+ goto L1200;
-+
-+ i = rchlnk[i];
-+ if (i > neqns)
-+ goto L1400;
-+ }
-+ nzend = jstrt - 1;
-+
-+ /* COPY THE STRUCTURE OF L(*,K) FROM RCHLNK TO THE DATA STRUCTURE (XNZSUB, NZSUB) */
-+L1200:
-+ nzbeg = nzend + 1;
-+ nzend += knz;
-+
-+ if (nzend > *maxsub) {
-+ flag = 1; /* Out of memory */
-+ break;
-+ }
-+
-+ i = k;
-+ for (j=nzbeg; j<=nzend; ++j) {
-+ i = rchlnk[i];
-+ nzsub[j] = i;
-+ marker[i] = k;
-+ }
-+ xnzsub[k] = nzbeg;
-+ marker[k] = k;
-+
-+ /*
-+ * UPDATE THE VECTOR MRGLNK. NOTE COLUMN L(*,K) JUST FOUND
-+ * IS REQUIRED TO DETERMINE COLUMN L(*,J), WHERE
-+ * L(J,K) IS THE FIRST NONZERO IN L(*,K) BELOW DIAGONAL.
-+ */
-+L1400:
-+ if (knz > 1) {
-+ kxsub = xnzsub[k];
-+ i = nzsub[kxsub];
-+ mrglnk[k] = mrglnk[i];
-+ mrglnk[i] = k;
-+ }
-+
-+ xlnz[k + 1] = xlnz[k] + knz;
-+ }
-+
-+ if (flag == 0) {
-+ *maxlnz = xlnz[neqns] - 1;
-+ *maxsub = xnzsub[neqns];
-+ xnzsub[neqns + 1] = xnzsub[neqns];
-+ }
-+
-+ marker++;
-+ mrglnk++;
-+ rchlnk++;
-+ nzsub++;
-+ xnzsub++;
-+ xlnz++;
-+ invp++;
-+ perm++;
-+ adjncy++;
-+ xadj++;
-+ gk_free((void **)&rchlnk, &mrglnk, &marker, LTERM);
-+
-+ return flag;
-+
-+}
-+
---- libmetis/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ libmetis/Makefile.am 2007-09-24 15:12:11.933290307 +0100
-@@ -0,0 +1,16 @@
-+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/GKlib/trunk -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64
-+lib_LTLIBRARIES = libmetis.la
-+libmetis_la_SOURCES= \
-+ balance.c bucketsort.c ccgraph.c checkgraph.c cmetis.c \
-+ coarsen.c compress.c debug.c estmem.c fm.c fortran.c \
-+ frename.c graph.c initpart.c kfmetis.c kmetis.c kvmetis.c \
-+ kwayfm.c kwayrefine.c kwayvolfm.c kwayvolrefine.c match.c \
-+ mbalance.c mbalance2.c mcoarsen.c memory.c mesh.c meshpart.c \
-+ mfm.c mfm2.c mincover.c minitpart.c minitpart2.c mkmetis.c \
-+ mkwayfmh.c mkwayrefine.c mmatch.c mmd.c mpmetis.c mrefine.c \
-+ mrefine2.c mrkmetis.c mutil.c myqsort.c ometis.c parmetis.c \
-+ pmetis.c pqueue.c refine.c rkmetis.c separator.c sfm.c \
-+ srefine.c stat.c streamio.c subdomains.c timing.c util.c \
-+ smbfactor.c
-+
-+libmetis_la_LIBADD = $(top_builddir)/GKlib/trunk/libgklib.la
---- programs/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ programs/Makefile.am 2007-09-24 15:12:11.933290307 +0100
-@@ -0,0 +1,19 @@
-+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/GKlib/trunk -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64
-+bin_PROGRAMS = cmetis graphchk kfmetis kmetis mesh2dual mesh2nodal metis \
-+ oemetis onmetis partdmesh partnmesh pmetis
-+
-+# Differing from upstream, a lot of these get smbfactor.c as we need
-+# ComputeFillIn2, which is referenced in proto.h <- metisbin.h
-+LDADD = $(top_builddir)/libmetis/libmetis.la
-+cmetis_SOURCES = cmetis.c io.c cmdline_cmetis.c
-+graphchk_SOURCES = graphchk.c io.c
-+kfmetis_SOURCES = kfmetis.c io.c cmdline_kfmetis.c
-+kmetis_SOURCES = kmetis.c io.c
-+mesh2dual_SOURCES = mesh2dual.c io.c
-+mesh2nodal_SOURCES = mesh2nodal.c io.c
-+metis_SOURCES = metis.c io.c
-+oemetis_SOURCES = oemetis.c io.c
-+onmetis_SOURCES = onmetis.c io.c
-+partdmesh_SOURCES = partdmesh.c io.c
-+partnmesh_SOURCES = partnmesh.c io.c
-+pmetis_SOURCES = pmetis.c io.c cmdline_pmetis.c
---- test/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ test/Makefile.am 2007-09-24 15:45:23.683980202 +0100
-@@ -0,0 +1,10 @@
-+AM_CPPFLAGS = \
-+ -I$(top_srcdir)/include \
-+ -I$(top_srcdir)/libmetis \
-+ -I$(top_srcdir)/programs \
-+ -I$(top_srcdir)/GKlib/trunk \
-+ -DLINUX -DUNIX -D_FILE_OFFSET_BITS=64
-+
-+check_PROGRAMS = mtest
-+mtest_SOURCES = mtest.c $(top_srcdir)/programs/io.c
-+mtest_LDADD = $(top_builddir)/libmetis/libmetis.la