feelpp.metis.patch
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/CMakeLists.txt metis/CMakeLists.txt
--- /Users/vincentchabannes/github/feelpp/contrib/metis/CMakeLists.txt 2015-05-28 10:41:14.000000000 +0200
+++ metis/CMakeLists.txt 2016-01-23 16:51:40.000000000 +0100
@@ -4,7 +4,7 @@ project(METIS)
set(C_FLAGS "-O3 -Wall -fPIC")
set(GKLIB_PATH ${FEELPP_SOURCE_DIR}/contrib/metis/GKlib CACHE PATH "path to GKlib")
-set(SHARED FALSE CACHE BOOL "build a shared library")
+#set(SHARED FALSE CACHE BOOL "build a shared library")
if(MSVC)
set(METIS_INSTALL FALSE)
@@ -13,7 +13,7 @@ else()
endif()
# Configure libmetis library.
-if(SHARED)
+if(BUILD_SHARED_LIBS)
set(METIS_LIBRARY_TYPE SHARED)
else()
set(METIS_LIBRARY_TYPE STATIC)
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/GKlib/error.c metis/GKlib/error.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/GKlib/error.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/GKlib/error.c 2016-01-24 10:39:02.000000000 +0100
@@ -28,13 +28,13 @@ This file contains functions dealing wit
Multiple buffers are defined to allow for recursive invokation. */
#define MAX_JBUFS 128
#ifdef LIBMESH_TLS
-LIBMESH_TLS int gk_cur_jbufs=-1;
-LIBMESH_TLS jmp_buf gk_jbufs[MAX_JBUFS];
-LIBMESH_TLS jmp_buf gk_jbuf;
+LIBMESH_TLS int feel_gk_cur_jbufs=-1;
+LIBMESH_TLS jmp_buf feel_gk_jbufs[MAX_JBUFS];
+LIBMESH_TLS jmp_buf feel_gk_jbuf;
#else
-int gk_cur_jbufs=-1;
-jmp_buf gk_jbufs[MAX_JBUFS];
-jmp_buf gk_jbuf;
+int feel_gk_cur_jbufs=-1;
+jmp_buf feel_gk_jbufs[MAX_JBUFS];
+jmp_buf feel_gk_jbuf;
#endif
typedef void (*gksighandler_t)(int);
@@ -118,13 +118,13 @@ void gk_errexit(int signum, char *f_str,
/***************************************************************************/
int gk_sigtrap()
{
- if (gk_cur_jbufs+1 >= MAX_JBUFS)
+ if (feel_gk_cur_jbufs+1 >= MAX_JBUFS)
return 0;
- gk_cur_jbufs++;
+ feel_gk_cur_jbufs++;
- old_SIGMEM_handlers[gk_cur_jbufs] = signal(SIGMEM, gk_sigthrow);
- old_SIGERR_handlers[gk_cur_jbufs] = signal(SIGERR, gk_sigthrow);
+ old_SIGMEM_handlers[feel_gk_cur_jbufs] = signal(SIGMEM, gk_sigthrow);
+ old_SIGERR_handlers[feel_gk_cur_jbufs] = signal(SIGERR, gk_sigthrow);
return 1;
}
@@ -136,13 +136,13 @@ int gk_sigtrap()
/***************************************************************************/
int gk_siguntrap()
{
- if (gk_cur_jbufs == -1)
+ if (feel_gk_cur_jbufs == -1)
return 0;
- signal(SIGMEM, old_SIGMEM_handlers[gk_cur_jbufs]);
- signal(SIGERR, old_SIGERR_handlers[gk_cur_jbufs]);
+ signal(SIGMEM, old_SIGMEM_handlers[feel_gk_cur_jbufs]);
+ signal(SIGERR, old_SIGERR_handlers[feel_gk_cur_jbufs]);
- gk_cur_jbufs--;
+ feel_gk_cur_jbufs--;
return 1;
}
@@ -155,7 +155,7 @@ int gk_siguntrap()
/*************************************************************************/
void gk_sigthrow(int signum)
{
- longjmp(gk_jbufs[gk_cur_jbufs], signum);
+ longjmp(feel_gk_jbufs[feel_gk_cur_jbufs], signum);
}
@@ -186,7 +186,7 @@ void gk_UnsetSignalHandlers()
**************************************************************************/
void gk_NonLocalExit_Handler(int signum)
{
- longjmp(gk_jbuf, signum);
+ longjmp(feel_gk_jbuf, signum);
}
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/GKlib/gk_externs.h metis/GKlib/gk_externs.h
--- /Users/vincentchabannes/github/feelpp/contrib/metis/GKlib/gk_externs.h 2015-05-22 07:41:18.000000000 +0200
+++ metis/GKlib/gk_externs.h 2016-01-24 10:38:09.000000000 +0100
@@ -26,13 +26,13 @@
/* declared in error.c */
#ifdef LIBMESH_TLS
-extern LIBMESH_TLS int gk_cur_jbufs;
-extern LIBMESH_TLS jmp_buf gk_jbufs[];
-extern LIBMESH_TLS jmp_buf gk_jbuf;
+extern LIBMESH_TLS int feel_gk_cur_jbufs;
+extern LIBMESH_TLS jmp_buf feel_gk_jbufs[];
+extern LIBMESH_TLS jmp_buf feel_gk_jbuf;
#else
-extern int gk_cur_jbufs;
-extern jmp_buf gk_jbufs[];
-extern jmp_buf gk_jbuf;
+extern int feel_gk_cur_jbufs;
+extern jmp_buf feel_gk_jbufs[];
+extern jmp_buf feel_gk_jbuf;
#endif // LIBMESH_TLS
#endif
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/GKlib/gk_macros.h metis/GKlib/gk_macros.h
--- /Users/vincentchabannes/github/feelpp/contrib/metis/GKlib/gk_macros.h 2015-05-22 07:41:18.000000000 +0200
+++ metis/GKlib/gk_macros.h 2016-01-24 10:37:23.000000000 +0100
@@ -49,7 +49,7 @@
* gracefull library exit macro
*-------------------------------------------------------------*/
#define GKSETJMP() (setjmp(gk_return_to_entry))
-#define gk_sigcatch() (setjmp(gk_jbufs[gk_cur_jbufs]))
+#define gk_sigcatch() (setjmp(feel_gk_jbufs[feel_gk_cur_jbufs]))
/*-------------------------------------------------------------
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/feelpp.metis.patch metis/feelpp.metis.patch
--- /Users/vincentchabannes/github/feelpp/contrib/metis/feelpp.metis.patch 1970-01-01 01:00:00.000000000 +0100
+++ metis/feelpp.metis.patch 2016-01-23 18:14:46.000000000 +0100
@@ -0,0 +1,1140 @@
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/CMakeLists.txt metis/CMakeLists.txt
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/CMakeLists.txt 2015-05-28 10:41:14.000000000 +0200
++++ metis/CMakeLists.txt 2016-01-23 16:51:40.000000000 +0100
+@@ -4,7 +4,7 @@ project(METIS)
+ set(C_FLAGS "-O3 -Wall -fPIC")
+
+ set(GKLIB_PATH ${FEELPP_SOURCE_DIR}/contrib/metis/GKlib CACHE PATH "path to GKlib")
+-set(SHARED FALSE CACHE BOOL "build a shared library")
++#set(SHARED FALSE CACHE BOOL "build a shared library")
+
+ if(MSVC)
+ set(METIS_INSTALL FALSE)
+@@ -13,7 +13,7 @@ else()
+ endif()
+
+ # Configure libmetis library.
+-if(SHARED)
++if(BUILD_SHARED_LIBS)
+ set(METIS_LIBRARY_TYPE SHARED)
+ else()
+ set(METIS_LIBRARY_TYPE STATIC)
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/include/CMakeLists.txt metis/include/CMakeLists.txt
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/include/CMakeLists.txt 2015-05-22 07:41:18.000000000 +0200
++++ metis/include/CMakeLists.txt 2016-01-23 16:41:00.000000000 +0100
+@@ -1,3 +1,3 @@
+ if(METIS_INSTALL)
+- install(FILES metis.h DESTINATION include)
++ install(FILES feelmetis.h DESTINATION include)
+ endif()
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/include/feelmetis.h metis/include/feelmetis.h
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/include/feelmetis.h 1970-01-01 01:00:00.000000000 +0100
++++ metis/include/feelmetis.h 2016-01-23 16:23:15.000000000 +0100
+@@ -0,0 +1,360 @@
++/*!
++\file metis.h
++\brief This file contains function prototypes and constant definitions for METIS
++ *
++\author George
++\date Started 8/9/02
++\version\verbatim $Id$\endverbatim
++*/
++
++#ifndef _METIS_H_
++#define _METIS_H_
++
++/****************************************************************************
++* A set of defines that can be modified by the user
++*****************************************************************************/
++
++//#include <feel/feelcore/feel.hpp>
++
++/*--------------------------------------------------------------------------
++ Specifies the width of the elementary data type that will hold information
++ about vertices and their adjacency lists.
++
++ Possible values:
++ 32 : Use 32 bit signed integers
++ 64 : Use 64 bit signed integers
++
++ A width of 64 should be specified if the number of vertices or the total
++ number of edges in the graph exceed the limits of a 32 bit signed integer
++ i.e., 2^31-1.
++ Proper use of 64 bit integers requires that the c99 standard datatypes
++ int32_t and int64_t are supported by the compiler.
++ GCC does provides these definitions in stdint.h, but it may require some
++ modifications on other architectures.
++--------------------------------------------------------------------------*/
++#if 1 //FEELPP_DOF_ID_BYTES == 8
++# define IDXTYPEWIDTH 64
++#else
++# define IDXTYPEWIDTH 32
++#endif
++
++
++/*--------------------------------------------------------------------------
++ Specifies the data type that will hold floating-point style information.
++
++ Possible values:
++ 32 : single precission floating point (float)
++ 64 : double precission floating point (double)
++--------------------------------------------------------------------------*/
++#if 1 // defined(FEELPP_DEFAULT_DOUBLE_PRECISION)
++# define REALTYPEWIDTH 64
++#else
++# define REALTYPEWIDTH 32
++#endif
++
++
++/****************************************************************************
++* In principle, nothing needs to be changed beyond this point, unless the
++* int32_t and int64_t cannot be found in the normal places.
++*****************************************************************************/
++
++/* Uniform definitions for various compilers */
++#if defined(_MSC_VER)
++ #define COMPILER_MSC
++#endif
++#if defined(__ICC)
++ #define COMPILER_ICC
++#endif
++#if defined(__GNUC__)
++ #define COMPILER_GCC
++#endif
++
++/* Include c99 int definitions and need constants. When building the library,
++ * these are already defined by GKlib; hence the test for _GKLIB_H_ */
++#ifndef _GKLIB_H_
++#ifdef COMPILER_MSC
++#include <limits.h>
++
++typedef __int32 int32_t;
++typedef __int64 int64_t;
++#define PRId32 "I32d"
++#define PRId64 "I64d"
++#define SCNd32 "ld"
++#define SCNd64 "I64d"
++#define INT32_MIN ((int32_t)_I32_MIN)
++#define INT32_MAX _I32_MAX
++#define INT64_MIN ((int64_t)_I64_MIN)
++#define INT64_MAX _I64_MAX
++#else
++#include <inttypes.h>
++#endif
++#endif
++
++
++/*------------------------------------------------------------------------
++* Setup the basic datatypes
++*-------------------------------------------------------------------------*/
++#if IDXTYPEWIDTH == 32
++ typedef int32_t idx_t;
++
++ #define IDX_MAX INT32_MAX
++ #define IDX_MIN INT32_MIN
++
++ #define SCIDX SCNd32
++ #define PRIDX PRId32
++
++ #define strtoidx strtol
++ #define iabs abs
++#elif IDXTYPEWIDTH == 64
++ typedef int64_t idx_t;
++
++ #define IDX_MAX INT64_MAX
++ #define IDX_MIN INT64_MIN
++
++ #define SCIDX SCNd64
++ #define PRIDX PRId64
++
++#ifdef COMPILER_MSC
++ #define strtoidx _strtoi64
++#else
++ #define strtoidx strtoll
++#endif
++ #define iabs labs
++#else
++ #error "Incorrect user-supplied value fo IDXTYPEWIDTH"
++#endif
++
++
++#if REALTYPEWIDTH == 32
++ typedef float real_t;
++
++ #define SCREAL "f"
++ #define PRREAL "f"
++ #define REAL_MAX FLT_MAX
++ #define REAL_MIN FLT_MIN
++ #define REAL_EPSILON FLT_EPSILON
++
++ #define rabs fabsf
++ #define REALEQ(x,y) ((rabs((x)-(y)) <= FLT_EPSILON))
++
++#ifdef COMPILER_MSC
++ #define strtoreal (float)strtod
++#else
++ #define strtoreal strtof
++#endif
++#elif REALTYPEWIDTH == 64
++ typedef double real_t;
++
++ #define SCREAL "lf"
++ #define PRREAL "lf"
++ #define REAL_MAX DBL_MAX
++ #define REAL_MIN DBL_MIN
++ #define REAL_EPSILON DBL_EPSILON
++
++ #define rabs fabs
++ #define REALEQ(x,y) ((rabs((x)-(y)) <= DBL_EPSILON))
++
++ #define strtoreal strtod
++#else
++ #error "Incorrect user-supplied value for REALTYPEWIDTH"
++#endif
++
++
++/*------------------------------------------------------------------------
++* Constant definitions
++*-------------------------------------------------------------------------*/
++/* Metis's version number */
++#define METIS_VER_MAJOR 5
++#define METIS_VER_MINOR 1
++#define METIS_VER_SUBMINOR 0
++
++/* The maximum length of the options[] array */
++#define METIS_NOPTIONS 40
++
++
++
++/*------------------------------------------------------------------------
++* Function prototypes
++*-------------------------------------------------------------------------*/
++
++#ifdef _WINDLL
++#define METIS_API(type) __declspec(dllexport) type __cdecl
++#elif defined(__cdecl)
++#define METIS_API(type) type __cdecl
++#else
++#define METIS_API(type) type
++#endif
++
++
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++
++METIS_API(int) Feel_METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
++ idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
++ idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
++ idx_t *edgecut, idx_t *part);
++
++METIS_API(int) Feel_METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
++ idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
++ idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
++ idx_t *edgecut, idx_t *part);
++
++METIS_API(int) Feel_METIS_MeshToDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++ idx_t *ncommon, idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy);
++
++METIS_API(int) Feel_METIS_MeshToNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++ idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy);
++
++METIS_API(int) Feel_METIS_PartMeshNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++ idx_t *vwgt, idx_t *vsize, idx_t *nparts, real_t *tpwgts,
++ idx_t *options, idx_t *objval, idx_t *epart, idx_t *npart);
++
++METIS_API(int) Feel_METIS_PartMeshDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++ idx_t *vwgt, idx_t *vsize, idx_t *ncommon, idx_t *nparts,
++ real_t *tpwgts, idx_t *options, idx_t *objval, idx_t *epart,
++ idx_t *npart);
++
++METIS_API(int) Feel_METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
++ idx_t *options, idx_t *perm, idx_t *iperm);
++
++METIS_API(int) Feel_METIS_Free(void *ptr);
++
++METIS_API(int) Feel_METIS_SetDefaultOptions(idx_t *options);
++
++
++/* These functions are used by ParMETIS */
++
++METIS_API(int) Feel_METIS_NodeNDP(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
++ idx_t npes, idx_t *options, idx_t *perm, idx_t *iperm,
++ idx_t *sizes);
++
++METIS_API(int) Feel_METIS_ComputeVertexSeparator(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy,
++ idx_t *vwgt, idx_t *options, idx_t *sepsize, idx_t *part);
++
++METIS_API(int) Feel_METIS_NodeRefine(idx_t nvtxs, idx_t *xadj, idx_t *vwgt, idx_t *adjncy,
++ idx_t *where, idx_t *hmarker, real_t ubfactor);
++
++
++#ifdef __cplusplus
++}
++#endif
++
++
++
++/*------------------------------------------------------------------------
++* Enum type definitions
++*-------------------------------------------------------------------------*/
++/*! Return codes */
++typedef enum {
++ METIS_OK = 1, /*!< Returned normally */
++ METIS_ERROR_INPUT = -2, /*!< Returned due to erroneous inputs and/or options */
++ METIS_ERROR_MEMORY = -3, /*!< Returned due to insufficient memory */
++ METIS_ERROR = -4 /*!< Some other errors */
++} rstatus_et;
++
++
++/*! Operation type codes */
++typedef enum {
++ METIS_OP_PMETIS,
++ METIS_OP_KMETIS,
++ METIS_OP_OMETIS
++} moptype_et;
++
++
++/*! Options codes (i.e., options[]) */
++typedef enum {
++ METIS_OPTION_PTYPE,
++ METIS_OPTION_OBJTYPE,
++ METIS_OPTION_CTYPE,
++ METIS_OPTION_IPTYPE,
++ METIS_OPTION_RTYPE,
++ METIS_OPTION_DBGLVL,
++ METIS_OPTION_NITER,
++ METIS_OPTION_NCUTS,
++ METIS_OPTION_SEED,
++ METIS_OPTION_NO2HOP,
++ METIS_OPTION_MINCONN,
++ METIS_OPTION_CONTIG,
++ METIS_OPTION_COMPRESS,
++ METIS_OPTION_CCORDER,
++ METIS_OPTION_PFACTOR,
++ METIS_OPTION_NSEPS,
++ METIS_OPTION_UFACTOR,
++ METIS_OPTION_NUMBERING,
++
++ /* Used for command-line parameter purposes */
++ METIS_OPTION_HELP,
++ METIS_OPTION_TPWGTS,
++ METIS_OPTION_NCOMMON,
++ METIS_OPTION_NOOUTPUT,
++ METIS_OPTION_BALANCE,
++ METIS_OPTION_GTYPE,
++ METIS_OPTION_UBVEC
++} moptions_et;
++
++
++/*! Partitioning Schemes */
++typedef enum {
++ METIS_PTYPE_RB,
++ METIS_PTYPE_KWAY
++} mptype_et;
++
++/*! Graph types for meshes */
++typedef enum {
++ METIS_GTYPE_DUAL,
++ METIS_GTYPE_NODAL
++} mgtype_et;
++
++/*! Coarsening Schemes */
++typedef enum {
++ METIS_CTYPE_RM,
++ METIS_CTYPE_SHEM
++} mctype_et;
++
++/*! Initial partitioning schemes */
++typedef enum {
++ METIS_IPTYPE_GROW,
++ METIS_IPTYPE_RANDOM,
++ METIS_IPTYPE_EDGE,
++ METIS_IPTYPE_NODE,
++ METIS_IPTYPE_METISRB
++} miptype_et;
++
++
++/*! Refinement schemes */
++typedef enum {
++ METIS_RTYPE_FM,
++ METIS_RTYPE_GREEDY,
++ METIS_RTYPE_SEP2SIDED,
++ METIS_RTYPE_SEP1SIDED
++} mrtype_et;
++
++
++/*! Debug Levels */
++typedef enum {
++ METIS_DBG_INFO = 1, /*!< Shows various diagnostic messages */
++ METIS_DBG_TIME = 2, /*!< Perform timing analysis */
++ METIS_DBG_COARSEN = 4, /*!< Show the coarsening progress */
++ METIS_DBG_REFINE = 8, /*!< Show the refinement progress */
++ METIS_DBG_IPART = 16, /*!< Show info on initial partitioning */
++ METIS_DBG_MOVEINFO = 32, /*!< Show info on vertex moves during refinement */
++ METIS_DBG_SEPINFO = 64, /*!< Show info on vertex moves during sep refinement */
++ METIS_DBG_CONNINFO = 128, /*!< Show info on minimization of subdomain connectivity */
++ METIS_DBG_CONTIGINFO = 256, /*!< Show info on elimination of connected components */
++ METIS_DBG_MEMORY = 2048 /*!< Show info related to wspace allocation */
++} mdbglvl_et;
++
++
++/* Types of objectives */
++typedef enum {
++ METIS_OBJTYPE_CUT,
++ METIS_OBJTYPE_VOL,
++ METIS_OBJTYPE_NODE
++} mobjtype_et;
++
++
++
++#endif /* _METIS_H_ */
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/CMakeLists.txt metis/libmetis/CMakeLists.txt
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/CMakeLists.txt 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/CMakeLists.txt 2016-01-23 17:14:48.000000000 +0100
+@@ -13,13 +13,13 @@ foreach(file ${metis_sources})
+ endforeach()
+
+ # Build libmetis.
+-add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
++add_library(feelpp_metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
+ if(UNIX)
+- target_link_libraries(metis m)
++ target_link_libraries(feelpp_metis m)
+ endif()
+
+ if(METIS_INSTALL)
+- install(TARGETS metis
++ install(TARGETS feelpp_metis
+ LIBRARY DESTINATION lib
+ RUNTIME DESTINATION lib
+ ARCHIVE DESTINATION lib)
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/auxapi.c metis/libmetis/auxapi.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/auxapi.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/auxapi.c 2016-01-23 15:49:34.000000000 +0100
+@@ -20,7 +20,7 @@
+ METIS.
+ */
+ /*************************************************************************/
+-int METIS_Free(void *ptr)
++int Feel_METIS_Free(void *ptr)
+ {
+ if (ptr != NULL) free(ptr);
+ return METIS_OK;
+@@ -33,7 +33,7 @@ int METIS_Free(void *ptr)
+ \param options points to an array of size at least METIS_NOPTIONS.
+ */
+ /*************************************************************************/
+-int METIS_SetDefaultOptions(idx_t *options)
++int Feel_METIS_SetDefaultOptions(idx_t *options)
+ {
+ iset(METIS_NOPTIONS, -1, options);
+
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/frename.c metis/libmetis/frename.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/frename.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/frename.c 2016-01-23 09:54:21.000000000 +0100
+@@ -21,7 +21,7 @@
+
+
+ FRENAME(
+- METIS_PartGraphRecursive,
++ Feel_METIS_PartGraphRecursive,
+ (idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+ idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts,
+ real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part),
+@@ -36,7 +36,7 @@ FRENAME(
+
+
+ FRENAME(
+- METIS_PartGraphKway,
++ Feel_METIS_PartGraphKway,
+ (idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+ idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts,
+ real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part),
+@@ -50,7 +50,7 @@ FRENAME(
+ )
+
+ FRENAME(
+- METIS_MeshToDual,
++ Feel_METIS_MeshToDual,
+ (idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *ncommon, idx_t *numflag,
+ idx_t **r_xadj, idx_t **r_adjncy),
+ (ne, nn, eptr, eind, ncommon, numflag, r_xadj, r_adjncy),
+@@ -62,7 +62,7 @@ FRENAME(
+
+
+ FRENAME(
+- METIS_MeshToNodal,
++ Feel_METIS_MeshToNodal,
+ (idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *numflag, idx_t **r_xadj,
+ idx_t **r_adjncy),
+ (ne, nn, eptr, eind, numflag, r_xadj, r_adjncy),
+@@ -74,7 +74,7 @@ FRENAME(
+
+
+ FRENAME(
+- METIS_PartMeshNodal,
++ Feel_METIS_PartMeshNodal,
+ (idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *vwgt, idx_t *vsize,
+ idx_t *nparts, real_t *tpwgts, idx_t *options, idx_t *objval, idx_t *epart,
+ idx_t *npart),
+@@ -87,7 +87,7 @@ FRENAME(
+
+
+ FRENAME(
+- METIS_PartMeshDual,
++ Feel_METIS_PartMeshDual,
+ (idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *vwgt, idx_t *vsize,
+ idx_t *ncommon, idx_t *nparts, real_t *tpwgts, idx_t *options, idx_t *objval,
+ idx_t *epart, idx_t *npart),
+@@ -100,7 +100,7 @@ FRENAME(
+
+
+ FRENAME(
+- METIS_NodeND,
++ Feel_METIS_NodeND,
+ (idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, idx_t *options, idx_t *perm,
+ idx_t *iperm),
+ (nvtxs, xadj, adjncy, vwgt, options, perm, iperm),
+@@ -112,7 +112,7 @@ FRENAME(
+
+
+ FRENAME(
+- METIS_Free,
++ Feel_METIS_Free,
+ (void *ptr),
+ (ptr),
+ METIS_FREE,
+@@ -123,7 +123,7 @@ FRENAME(
+
+
+ FRENAME(
+- METIS_SetDefaultOptions,
++ Feel_METIS_SetDefaultOptions,
+ (idx_t *options),
+ (options),
+ METIS_SETDEFAULTOPTIONS,
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/kmetis.c metis/libmetis/kmetis.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/kmetis.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/kmetis.c 2016-01-23 13:19:39.000000000 +0100
+@@ -15,7 +15,7 @@
+ /*************************************************************************/
+ /*! This function is the entry point for MCKMETIS */
+ /*************************************************************************/
+-int METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy,
++int Feel_METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy,
+ idx_t *vwgt, idx_t *vsize, idx_t *adjwgt, idx_t *nparts,
+ real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *objval,
+ idx_t *part)
+@@ -176,7 +176,7 @@ void InitKWayPartitioning(ctrl_t *ctrl,
+ real_t *ubvec=NULL;
+ int status;
+
+- METIS_SetDefaultOptions(options);
++ Feel_METIS_SetDefaultOptions(options);
+ options[METIS_OPTION_NITER] = 10;
+ options[METIS_OPTION_OBJTYPE] = METIS_OBJTYPE_CUT;
+ options[METIS_OPTION_NO2HOP] = ctrl->no2hop;
+@@ -191,7 +191,7 @@ void InitKWayPartitioning(ctrl_t *ctrl,
+ case METIS_OBJTYPE_CUT:
+ case METIS_OBJTYPE_VOL:
+ options[METIS_OPTION_NCUTS] = ctrl->nIparts;
+- status = METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
++ status = Feel_METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
+ graph->xadj, graph->adjncy, graph->vwgt, graph->vsize,
+ graph->adjwgt, &ctrl->nparts, ctrl->tpwgts, ubvec,
+ options, &curobj, graph->where);
+@@ -208,7 +208,7 @@ void InitKWayPartitioning(ctrl_t *ctrl,
+
+ ntrials = (ctrl->nIparts+1)/2;
+ for (i=0; i<ntrials; i++) {
+- status = METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
++ status = Feel_METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
+ graph->xadj, graph->adjncy, graph->vwgt, graph->vsize,
+ graph->adjwgt, &ctrl->nparts, ctrl->tpwgts, ubvec,
+ options, &curobj, graph->where);
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/mesh.c metis/libmetis/mesh.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/mesh.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/mesh.c 2016-01-23 13:14:27.000000000 +0100
+@@ -41,7 +41,7 @@
+
+ */
+ /*****************************************************************************/
+-int METIS_MeshToDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++int Feel_METIS_MeshToDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *ncommon, idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy)
+ {
+ int sigrval=0, renumber=0;
+@@ -111,7 +111,7 @@ SIGTHROW:
+
+ */
+ /*****************************************************************************/
+-int METIS_MeshToNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++int Feel_METIS_MeshToNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy)
+ {
+ int sigrval=0, renumber=0;
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/meshpart.c metis/libmetis/meshpart.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/meshpart.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/meshpart.c 2016-01-23 13:11:42.000000000 +0100
+@@ -19,7 +19,7 @@
+ * This function partitions a finite element mesh by partitioning its nodal
+ * graph using KMETIS and then assigning elements in a load balanced fashion.
+ **************************************************************************/
+-int METIS_PartMeshNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++int Feel_METIS_PartMeshNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *vwgt, idx_t *vsize, idx_t *nparts, real_t *tpwgts,
+ idx_t *options, idx_t *objval, idx_t *epart, idx_t *npart)
+ {
+@@ -47,16 +47,16 @@ int METIS_PartMeshNodal(idx_t *ne, idx_t
+ }
+
+ /* get the nodal graph */
+- rstatus = METIS_MeshToNodal(ne, nn, eptr, eind, &pnumflag, &xadj, &adjncy);
++ rstatus = Feel_METIS_MeshToNodal(ne, nn, eptr, eind, &pnumflag, &xadj, &adjncy);
+ if (rstatus != METIS_OK)
+ raise(SIGERR);
+
+ /* partition the graph */
+ if (ptype == METIS_PTYPE_KWAY)
+- rstatus = METIS_PartGraphKway(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
++ rstatus = Feel_METIS_PartGraphKway(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ nparts, tpwgts, NULL, options, objval, npart);
+ else
+- rstatus = METIS_PartGraphRecursive(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
++ rstatus = Feel_METIS_PartGraphRecursive(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ nparts, tpwgts, NULL, options, objval, npart);
+
+ if (rstatus != METIS_OK)
+@@ -72,8 +72,8 @@ SIGTHROW:
+ options[METIS_OPTION_NUMBERING] = 1;
+ }
+
+- METIS_Free(xadj);
+- METIS_Free(adjncy);
++ Feel_METIS_Free(xadj);
++ Feel_METIS_Free(adjncy);
+
+ gk_siguntrap();
+ gk_malloc_cleanup(0);
+@@ -87,7 +87,7 @@ SIGTHROW:
+ * This function partitions a finite element mesh by partitioning its dual
+ * graph using KMETIS and then assigning nodes in a load balanced fashion.
+ **************************************************************************/
+-int METIS_PartMeshDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
++int Feel_METIS_PartMeshDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *vwgt, idx_t *vsize, idx_t *ncommon, idx_t *nparts,
+ real_t *tpwgts, idx_t *options, idx_t *objval, idx_t *epart,
+ idx_t *npart)
+@@ -117,16 +117,16 @@ int METIS_PartMeshDual(idx_t *ne, idx_t
+ }
+
+ /* get the dual graph */
+- rstatus = METIS_MeshToDual(ne, nn, eptr, eind, ncommon, &pnumflag, &xadj, &adjncy);
++ rstatus = Feel_METIS_MeshToDual(ne, nn, eptr, eind, ncommon, &pnumflag, &xadj, &adjncy);
+ if (rstatus != METIS_OK)
+ raise(SIGERR);
+
+ /* partition the graph */
+ if (ptype == METIS_PTYPE_KWAY)
+- rstatus = METIS_PartGraphKway(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
++ rstatus = Feel_METIS_PartGraphKway(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ nparts, tpwgts, NULL, options, objval, epart);
+ else
+- rstatus = METIS_PartGraphRecursive(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
++ rstatus = Feel_METIS_PartGraphRecursive(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ nparts, tpwgts, NULL, options, objval, epart);
+
+ if (rstatus != METIS_OK)
+@@ -161,8 +161,8 @@ SIGTHROW:
+ options[METIS_OPTION_NUMBERING] = 1;
+ }
+
+- METIS_Free(xadj);
+- METIS_Free(adjncy);
++ Feel_METIS_Free(xadj);
++ Feel_METIS_Free(adjncy);
+
+ gk_siguntrap();
+ gk_malloc_cleanup(0);
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/metislib.h metis/libmetis/metislib.h
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/metislib.h 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/metislib.h 2016-01-23 16:35:24.000000000 +0100
+@@ -21,7 +21,7 @@
+ #endif
+
+
+-#include <metis.h>
++#include <feelmetis.h>
+ #include <rename.h>
+ #include <gklib_defs.h>
+
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/ometis.c metis/libmetis/ometis.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/ometis.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/ometis.c 2016-01-23 13:15:24.000000000 +0100
+@@ -40,7 +40,7 @@
+ the original and permuted matrices, then A[i] = A'[iperm[i]].
+ */
+ /*************************************************************************/
+-int METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
++int Feel_METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+ idx_t *options, idx_t *perm, idx_t *iperm)
+ {
+ int sigrval=0, renumber=0;
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/parmetis.c metis/libmetis/parmetis.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/parmetis.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/parmetis.c 2016-01-23 13:21:26.000000000 +0100
+@@ -25,7 +25,7 @@
+ sizes array.
+ */
+ /*************************************************************************/
+-int METIS_NodeNDP(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
++int Feel_METIS_NodeNDP(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+ idx_t npes, idx_t *options, idx_t *perm, idx_t *iperm, idx_t *sizes)
+ {
+ idx_t i, ii, j, l, nnvtxs=0;
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/pmetis.c metis/libmetis/pmetis.c
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/pmetis.c 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/pmetis.c 2016-01-23 13:18:48.000000000 +0100
+@@ -88,7 +88,7 @@
+
+ */
+ /*************************************************************************/
+-int METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
++int Feel_METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
+ idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
+ idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
+ idx_t *objval, idx_t *part)
+diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/rename.h metis/libmetis/rename.h
+--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/rename.h 2015-05-22 07:41:18.000000000 +0200
++++ metis/libmetis/rename.h 2016-01-23 15:56:33.000000000 +0100
+@@ -18,248 +18,248 @@
+
+
+ /* balance.c */
+-#define Balance2Way libmetis__Balance2Way
+-#define Bnd2WayBalance libmetis__Bnd2WayBalance
+-#define General2WayBalance libmetis__General2WayBalance
+-#define McGeneral2WayBalance libmetis__McGeneral2WayBalance
++#define Balance2Way feel__libmetis__Balance2Way
++#define Bnd2WayBalance feel__libmetis__Bnd2WayBalance
++#define General2WayBalance feel__libmetis__General2WayBalance
++#define McGeneral2WayBalance feel__libmetis__McGeneral2WayBalance
+
+ /* bucketsort.c */
+-#define BucketSortKeysInc libmetis__BucketSortKeysInc
++#define BucketSortKeysInc feel__libmetis__BucketSortKeysInc
+
+ /* checkgraph.c */
+-#define CheckGraph libmetis__CheckGraph
+-#define CheckInputGraphWeights libmetis__CheckInputGraphWeights
+-#define FixGraph libmetis__FixGraph
++#define CheckGraph feel__libmetis__CheckGraph
++#define CheckInputGraphWeights feel__libmetis__CheckInputGraphWeights
++#define FixGraph feel__libmetis__FixGraph
+
+ /* coarsen.c */
+-#define CoarsenGraph libmetis__CoarsenGraph
+-#define Match_RM libmetis__Match_RM
+-#define Match_SHEM libmetis__Match_SHEM
+-#define Match_2Hop libmetis__Match_2Hop
+-#define Match_2HopAny libmetis__Match_2HopAny
+-#define Match_2HopAll libmetis__Match_2HopAll
+-#define PrintCGraphStats libmetis__PrintCGraphStats
+-#define CreateCoarseGraph libmetis__CreateCoarseGraph
+-#define CreateCoarseGraphNoMask libmetis__CreateCoarseGraphNoMask
+-#define CreateCoarseGraphPerm libmetis__CreateCoarseGraphPerm
+-#define SetupCoarseGraph libmetis__SetupCoarseGraph
+-#define ReAdjustMemory libmetis__ReAdjustMemory
++#define CoarsenGraph feel__libmetis__CoarsenGraph
++#define Match_RM feel__libmetis__Match_RM
++#define Match_SHEM feel__libmetis__Match_SHEM
++#define Match_2Hop feel__libmetis__Match_2Hop
++#define Match_2HopAny feel__libmetis__Match_2HopAny
++#define Match_2HopAll feel__libmetis__Match_2HopAll
++#define PrintCGraphStats feel__libmetis__PrintCGraphStats
++#define CreateCoarseGraph feel__libmetis__CreateCoarseGraph
++#define CreateCoarseGraphNoMask feel__libmetis__CreateCoarseGraphNoMask
++#define CreateCoarseGraphPerm feel__libmetis__CreateCoarseGraphPerm
++#define SetupCoarseGraph feel__libmetis__SetupCoarseGraph
++#define ReAdjustMemory feel__libmetis__ReAdjustMemory
+
+ /* compress.c */
+-#define CompressGraph libmetis__CompressGraph
+-#define PruneGraph libmetis__PruneGraph
++#define CompressGraph feel__libmetis__CompressGraph
++#define PruneGraph feel__libmetis__PruneGraph
+
+ /* contig.c */
+-#define FindPartitionInducedComponents libmetis__FindPartitionInducedComponents
+-#define IsConnected libmetis__IsConnected
+-#define IsConnectedSubdomain libmetis__IsConnectedSubdomain
+-#define FindSepInducedComponents libmetis__FindSepInducedComponents
+-#define EliminateComponents libmetis__EliminateComponents
+-#define MoveGroupContigForCut libmetis__MoveGroupContigForCut
+-#define MoveGroupContigForVol libmetis__MoveGroupContigForVol
++#define FindPartitionInducedComponents feel__libmetis__FindPartitionInducedComponents
++#define IsConnected feel__libmetis__IsConnected
++#define IsConnectedSubdomain feel__libmetis__IsConnectedSubdomain
++#define FindSepInducedComponents feel__libmetis__FindSepInducedComponents
++#define EliminateComponents feel__libmetis__EliminateComponents
++#define MoveGroupContigForCut feel__libmetis__MoveGroupContigForCut
++#define MoveGroupContigForVol feel__libmetis__MoveGroupContigForVol
+
+ /* debug.c */
+-#define ComputeCut libmetis__ComputeCut
+-#define ComputeVolume libmetis__ComputeVolume
+-#define ComputeMaxCut libmetis__ComputeMaxCut
+-#define CheckBnd libmetis__CheckBnd
+-#define CheckBnd2 libmetis__CheckBnd2
+-#define CheckNodeBnd libmetis__CheckNodeBnd
+-#define CheckRInfo libmetis__CheckRInfo
+-#define CheckNodePartitionParams libmetis__CheckNodePartitionParams
+-#define IsSeparable libmetis__IsSeparable
+-#define CheckKWayVolPartitionParams libmetis__CheckKWayVolPartitionParams
++#define ComputeCut feel__libmetis__ComputeCut
++#define ComputeVolume feel__libmetis__ComputeVolume
++#define ComputeMaxCut feel__libmetis__ComputeMaxCut
++#define CheckBnd feel__libmetis__CheckBnd
++#define CheckBnd2 feel__libmetis__CheckBnd2
++#define CheckNodeBnd feel__libmetis__CheckNodeBnd
++#define CheckRInfo feel__libmetis__CheckRInfo
++#define CheckNodePartitionParams feel__libmetis__CheckNodePartitionParams
++#define IsSeparable feel__libmetis__IsSeparable
++#define CheckKWayVolPartitionParams feel__libmetis__CheckKWayVolPartitionParams
+
+ /* fm.c */
+-#define FM_2WayRefine libmetis__FM_2WayRefine
+-#define FM_2WayCutRefine libmetis__FM_2WayCutRefine
+-#define FM_Mc2WayCutRefine libmetis__FM_Mc2WayCutRefine
+-#define SelectQueue libmetis__SelectQueue
+-#define Print2WayRefineStats libmetis__Print2WayRefineStats
++#define FM_2WayRefine feel__libmetis__FM_2WayRefine
++#define FM_2WayCutRefine feel__libmetis__FM_2WayCutRefine
++#define FM_Mc2WayCutRefine feel__libmetis__FM_Mc2WayCutRefine
++#define SelectQueue feel__libmetis__SelectQueue
++#define Print2WayRefineStats feel__libmetis__Print2WayRefineStats
+
+ /* fortran.c */
+-#define Change2CNumbering libmetis__Change2CNumbering
+-#define Change2FNumbering libmetis__Change2FNumbering
+-#define Change2FNumbering2 libmetis__Change2FNumbering2
+-#define Change2FNumberingOrder libmetis__Change2FNumberingOrder
+-#define ChangeMesh2CNumbering libmetis__ChangeMesh2CNumbering
+-#define ChangeMesh2FNumbering libmetis__ChangeMesh2FNumbering
+-#define ChangeMesh2FNumbering2 libmetis__ChangeMesh2FNumbering2
++#define Change2CNumbering feel__libmetis__Change2CNumbering
++#define Change2FNumbering feel__libmetis__Change2FNumbering
++#define Change2FNumbering2 feel__libmetis__Change2FNumbering2
++#define Change2FNumberingOrder feel__libmetis__Change2FNumberingOrder
++#define ChangeMesh2CNumbering feel__libmetis__ChangeMesh2CNumbering
++#define ChangeMesh2FNumbering feel__libmetis__ChangeMesh2FNumbering
++#define ChangeMesh2FNumbering2 feel__libmetis__ChangeMesh2FNumbering2
+
+ /* graph.c */
+-#define SetupGraph libmetis__SetupGraph
+-#define SetupGraph_adjrsum libmetis__SetupGraph_adjrsum
+-#define SetupGraph_tvwgt libmetis__SetupGraph_tvwgt
+-#define SetupGraph_label libmetis__SetupGraph_label
+-#define SetupSplitGraph libmetis__SetupSplitGraph
+-#define CreateGraph libmetis__CreateGraph
+-#define InitGraph libmetis__InitGraph
+-#define FreeRData libmetis__FreeRData
+-#define FreeGraph libmetis__FreeGraph
++#define SetupGraph feel__libmetis__SetupGraph
++#define SetupGraph_adjrsum feel__libmetis__SetupGraph_adjrsum
++#define SetupGraph_tvwgt feel__libmetis__SetupGraph_tvwgt
++#define SetupGraph_label feel__libmetis__SetupGraph_label
++#define SetupSplitGraph feel__libmetis__SetupSplitGraph
++#define CreateGraph feel__libmetis__CreateGraph
++#define InitGraph feel__libmetis__InitGraph
++#define FreeRData feel__libmetis__FreeRData
++#define FreeGraph feel__libmetis__FreeGraph
+
+ /* initpart.c */
+-#define Init2WayPartition libmetis__Init2WayPartition
+-#define InitSeparator libmetis__InitSeparator
+-#define RandomBisection libmetis__RandomBisection
+-#define GrowBisection libmetis__GrowBisection
+-#define McRandomBisection libmetis__McRandomBisection
+-#define McGrowBisection libmetis__McGrowBisection
+-#define GrowBisectionNode libmetis__GrowBisectionNode
++#define Init2WayPartition feel__libmetis__Init2WayPartition
++#define InitSeparator feel__libmetis__InitSeparator
++#define RandomBisection feel__libmetis__RandomBisection
++#define GrowBisection feel__libmetis__GrowBisection
++#define McRandomBisection feel__libmetis__McRandomBisection
++#define McGrowBisection feel__libmetis__McGrowBisection
++#define GrowBisectionNode feel__libmetis__GrowBisectionNode
+
+ /* kmetis.c */
+-#define MlevelKWayPartitioning libmetis__MlevelKWayPartitioning
+-#define InitKWayPartitioning libmetis__InitKWayPartitioning
++#define MlevelKWayPartitioning feel__libmetis__MlevelKWayPartitioning
++#define InitKWayPartitioning feel__libmetis__InitKWayPartitioning
+
+ /* kwayfm.c */
+-#define Greedy_KWayOptimize libmetis__Greedy_KWayOptimize
+-#define Greedy_KWayCutOptimize libmetis__Greedy_KWayCutOptimize
+-#define Greedy_KWayVolOptimize libmetis__Greedy_KWayVolOptimize
+-#define Greedy_McKWayCutOptimize libmetis__Greedy_McKWayCutOptimize
+-#define Greedy_McKWayVolOptimize libmetis__Greedy_McKWayVolOptimize
+-#define IsArticulationNode libmetis__IsArticulationNode
+-#define KWayVolUpdate libmetis__KWayVolUpdate
++#define Greedy_KWayOptimize feel__libmetis__Greedy_KWayOptimize
++#define Greedy_KWayCutOptimize feel__libmetis__Greedy_KWayCutOptimize
++#define Greedy_KWayVolOptimize feel__libmetis__Greedy_KWayVolOptimize
++#define Greedy_McKWayCutOptimize feel__libmetis__Greedy_McKWayCutOptimize
++#define Greedy_McKWayVolOptimize feel__libmetis__Greedy_McKWayVolOptimize
++#define IsArticulationNode feel__libmetis__IsArticulationNode
++#define KWayVolUpdate feel__libmetis__KWayVolUpdate
+
+ /* kwayrefine.c */
+-#define RefineKWay libmetis__RefineKWay
+-#define AllocateKWayPartitionMemory libmetis__AllocateKWayPartitionMemory
+-#define ComputeKWayPartitionParams libmetis__ComputeKWayPartitionParams
+-#define ProjectKWayPartition libmetis__ProjectKWayPartition
+-#define ComputeKWayBoundary libmetis__ComputeKWayBoundary
+-#define ComputeKWayVolGains libmetis__ComputeKWayVolGains
+-#define IsBalanced libmetis__IsBalanced
++#define RefineKWay feel__libmetis__RefineKWay
++#define AllocateKWayPartitionMemory feel__libmetis__AllocateKWayPartitionMemory
++#define ComputeKWayPartitionParams feel__libmetis__ComputeKWayPartitionParams
++#define ProjectKWayPartition feel__libmetis__ProjectKWayPartition
++#define ComputeKWayBoundary feel__libmetis__ComputeKWayBoundary
++#define ComputeKWayVolGains feel__libmetis__ComputeKWayVolGains
++#define IsBalanced feel__libmetis__IsBalanced
+
+ /* mcutil */
+-#define rvecle libmetis__rvecle
+-#define rvecge libmetis__rvecge
+-#define rvecsumle libmetis__rvecsumle
+-#define rvecmaxdiff libmetis__rvecmaxdiff
+-#define ivecle libmetis__ivecle
+-#define ivecge libmetis__ivecge
+-#define ivecaxpylez libmetis__ivecaxpylez
+-#define ivecaxpygez libmetis__ivecaxpygez
+-#define BetterVBalance libmetis__BetterVBalance
+-#define BetterBalance2Way libmetis__BetterBalance2Way
+-#define BetterBalanceKWay libmetis__BetterBalanceKWay
+-#define ComputeLoadImbalance libmetis__ComputeLoadImbalance
+-#define ComputeLoadImbalanceDiff libmetis__ComputeLoadImbalanceDiff
+-#define ComputeLoadImbalanceDiffVec libmetis__ComputeLoadImbalanceDiffVec
+-#define ComputeLoadImbalanceVec libmetis__ComputeLoadImbalanceVec
++#define rvecle feel__libmetis__rvecle
++#define rvecge feel__libmetis__rvecge
++#define rvecsumle feel__libmetis__rvecsumle
++#define rvecmaxdiff feel__libmetis__rvecmaxdiff
++#define ivecle feel__libmetis__ivecle
++#define ivecge feel__libmetis__ivecge
++#define ivecaxpylez feel__libmetis__ivecaxpylez
++#define ivecaxpygez feel__libmetis__ivecaxpygez
++#define BetterVBalance feel__libmetis__BetterVBalance
++#define BetterBalance2Way feel__libmetis__BetterBalance2Way
++#define BetterBalanceKWay feel__libmetis__BetterBalanceKWay
++#define ComputeLoadImbalance feel__libmetis__ComputeLoadImbalance
++#define ComputeLoadImbalanceDiff feel__libmetis__ComputeLoadImbalanceDiff
++#define ComputeLoadImbalanceDiffVec feel__libmetis__ComputeLoadImbalanceDiffVec
++#define ComputeLoadImbalanceVec feel__libmetis__ComputeLoadImbalanceVec
+
+ /* mesh.c */
+-#define CreateGraphDual libmetis__CreateGraphDual
+-#define FindCommonElements libmetis__FindCommonElements
+-#define CreateGraphNodal libmetis__CreateGraphNodal
+-#define FindCommonNodes libmetis__FindCommonNodes
+-#define CreateMesh libmetis__CreateMesh
+-#define InitMesh libmetis__InitMesh
+-#define FreeMesh libmetis__FreeMesh
++#define CreateGraphDual feel__libmetis__CreateGraphDual
++#define FindCommonElements feel__libmetis__FindCommonElements
++#define CreateGraphNodal feel__libmetis__CreateGraphNodal
++#define FindCommonNodes feel__libmetis__FindCommonNodes
++#define CreateMesh feel__libmetis__CreateMesh
++#define InitMesh feel__libmetis__InitMesh
++#define FreeMesh feel__libmetis__FreeMesh
+
+ /* meshpart.c */
+-#define InduceRowPartFromColumnPart libmetis__InduceRowPartFromColumnPart
++#define InduceRowPartFromColumnPart feel__libmetis__InduceRowPartFromColumnPart
+
+ /* minconn.c */
+-#define ComputeSubDomainGraph libmetis__ComputeSubDomainGraph
+-#define UpdateEdgeSubDomainGraph libmetis__UpdateEdgeSubDomainGraph
+-#define PrintSubDomainGraph libmetis__PrintSubDomainGraph
+-#define EliminateSubDomainEdges libmetis__EliminateSubDomainEdges
+-#define MoveGroupMinConnForCut libmetis__MoveGroupMinConnForCut
+-#define MoveGroupMinConnForVol libmetis__MoveGroupMinConnForVol
++#define ComputeSubDomainGraph feel__libmetis__ComputeSubDomainGraph
++#define UpdateEdgeSubDomainGraph feel__libmetis__UpdateEdgeSubDomainGraph
++#define PrintSubDomainGraph feel__libmetis__PrintSubDomainGraph
++#define EliminateSubDomainEdges feel__libmetis__EliminateSubDomainEdges
++#define MoveGroupMinConnForCut feel__libmetis__MoveGroupMinConnForCut
++#define MoveGroupMinConnForVol feel__libmetis__MoveGroupMinConnForVol
+
+ /* mincover.c */
+-#define MinCover libmetis__MinCover
+-#define MinCover_Augment libmetis__MinCover_Augment
+-#define MinCover_Decompose libmetis__MinCover_Decompose
+-#define MinCover_ColDFS libmetis__MinCover_ColDFS
+-#define MinCover_RowDFS libmetis__MinCover_RowDFS
++#define MinCover feel__libmetis__MinCover
++#define MinCover_Augment feel__libmetis__MinCover_Augment
++#define MinCover_Decompose feel__libmetis__MinCover_Decompose
++#define MinCover_ColDFS feel__libmetis__MinCover_ColDFS
++#define MinCover_RowDFS feel__libmetis__MinCover_RowDFS
+
+ /* mmd.c */
+-#define genmmd libmetis__genmmd
+-#define mmdelm libmetis__mmdelm
+-#define mmdint libmetis__mmdint
+-#define mmdnum libmetis__mmdnum
+-#define mmdupd libmetis__mmdupd
++#define genmmd feel__libmetis__genmmd
++#define mmdelm feel__libmetis__mmdelm
++#define mmdint feel__libmetis__mmdint
++#define mmdnum feel__libmetis__mmdnum
++#define mmdupd feel__libmetis__mmdupd
+
+
+ /* ometis.c */
+-#define MlevelNestedDissection libmetis__MlevelNestedDissection
+-#define MlevelNestedDissectionCC libmetis__MlevelNestedDissectionCC
+-#define MlevelNodeBisectionMultiple libmetis__MlevelNodeBisectionMultiple
+-#define MlevelNodeBisectionL2 libmetis__MlevelNodeBisectionL2
+-#define MlevelNodeBisectionL1 libmetis__MlevelNodeBisectionL1
+-#define SplitGraphOrder libmetis__SplitGraphOrder
+-#define SplitGraphOrderCC libmetis__SplitGraphOrderCC
+-#define MMDOrder libmetis__MMDOrder
++#define MlevelNestedDissection feel__libmetis__MlevelNestedDissection
++#define MlevelNestedDissectionCC feel__libmetis__MlevelNestedDissectionCC
++#define MlevelNodeBisectionMultiple feel__libmetis__MlevelNodeBisectionMultiple
++#define MlevelNodeBisectionL2 feel__libmetis__MlevelNodeBisectionL2
++#define MlevelNodeBisectionL1 feel__libmetis__MlevelNodeBisectionL1
++#define SplitGraphOrder feel__libmetis__SplitGraphOrder
++#define SplitGraphOrderCC feel__libmetis__SplitGraphOrderCC
++#define MMDOrder feel__libmetis__MMDOrder
+
+ /* options.c */
+-#define SetupCtrl libmetis__SetupCtrl
+-#define SetupKWayBalMultipliers libmetis__SetupKWayBalMultipliers
+-#define Setup2WayBalMultipliers libmetis__Setup2WayBalMultipliers
+-#define PrintCtrl libmetis__PrintCtrl
+-#define FreeCtrl libmetis__FreeCtrl
+-#define CheckParams libmetis__CheckParams
++#define SetupCtrl feel__libmetis__SetupCtrl
++#define SetupKWayBalMultipliers feel__libmetis__SetupKWayBalMultipliers
++#define Setup2WayBalMultipliers feel__libmetis__Setup2WayBalMultipliers
++#define PrintCtrl feel__libmetis__PrintCtrl
++#define FreeCtrl feel__libmetis__FreeCtrl
++#define CheckParams feel__libmetis__CheckParams
+
+ /* parmetis.c */
+-#define MlevelNestedDissectionP libmetis__MlevelNestedDissectionP
+-#define FM_2WayNodeRefine1SidedP libmetis__FM_2WayNodeRefine1SidedP
+-#define FM_2WayNodeRefine2SidedP libmetis__FM_2WayNodeRefine2SidedP
++#define MlevelNestedDissectionP feel__libmetis__MlevelNestedDissectionP
++#define FM_2WayNodeRefine1SidedP feel__libmetis__FM_2WayNodeRefine1SidedP
++#define FM_2WayNodeRefine2SidedP feel__libmetis__FM_2WayNodeRefine2SidedP
+
+ /* pmetis.c */
+-#define MlevelRecursiveBisection libmetis__MlevelRecursiveBisection
+-#define MultilevelBisect libmetis__MultilevelBisect
+-#define SplitGraphPart libmetis__SplitGraphPart
++#define MlevelRecursiveBisection feel__libmetis__MlevelRecursiveBisection
++#define MultilevelBisect feel__libmetis__MultilevelBisect
++#define SplitGraphPart feel__libmetis__SplitGraphPart
+
+ /* refine.c */
+-#define Refine2Way libmetis__Refine2Way
+-#define Allocate2WayPartitionMemory libmetis__Allocate2WayPartitionMemory
+-#define Compute2WayPartitionParams libmetis__Compute2WayPartitionParams
+-#define Project2WayPartition libmetis__Project2WayPartition
++#define Refine2Way feel__libmetis__Refine2Way
++#define Allocate2WayPartitionMemory feel__libmetis__Allocate2WayPartitionMemory
++#define Compute2WayPartitionParams feel__libmetis__Compute2WayPartitionParams
++#define Project2WayPartition feel__libmetis__Project2WayPartition
+
+ /* separator.c */
+-#define ConstructSeparator libmetis__ConstructSeparator
+-#define ConstructMinCoverSeparator libmetis__ConstructMinCoverSeparator
++#define ConstructSeparator feel__libmetis__ConstructSeparator
++#define ConstructMinCoverSeparator feel__libmetis__ConstructMinCoverSeparator
+
+ /* sfm.c */
+-#define FM_2WayNodeRefine2Sided libmetis__FM_2WayNodeRefine2Sided
+-#define FM_2WayNodeRefine1Sided libmetis__FM_2WayNodeRefine1Sided
+-#define FM_2WayNodeBalance libmetis__FM_2WayNodeBalance
++#define FM_2WayNodeRefine2Sided feel__libmetis__FM_2WayNodeRefine2Sided
++#define FM_2WayNodeRefine1Sided feel__libmetis__FM_2WayNodeRefine1Sided
++#define FM_2WayNodeBalance feel__libmetis__FM_2WayNodeBalance
+
+ /* srefine.c */
+-#define Refine2WayNode libmetis__Refine2WayNode
+-#define Allocate2WayNodePartitionMemory libmetis__Allocate2WayNodePartitionMemory
+-#define Compute2WayNodePartitionParams libmetis__Compute2WayNodePartitionParams
+-#define Project2WayNodePartition libmetis__Project2WayNodePartition
++#define Refine2WayNode feel__libmetis__Refine2WayNode
++#define Allocate2WayNodePartitionMemory feel__libmetis__Allocate2WayNodePartitionMemory
++#define Compute2WayNodePartitionParams feel__libmetis__Compute2WayNodePartitionParams
++#define Project2WayNodePartition feel__libmetis__Project2WayNodePartition
+
+ /* stat.c */
+-#define ComputePartitionInfoBipartite libmetis__ComputePartitionInfoBipartite
+-#define ComputePartitionBalance libmetis__ComputePartitionBalance
+-#define ComputeElementBalance libmetis__ComputeElementBalance
++#define ComputePartitionInfoBipartite feel__libmetis__ComputePartitionInfoBipartite
++#define ComputePartitionBalance feel__libmetis__ComputePartitionBalance
++#define ComputeElementBalance feel__libmetis__ComputeElementBalance
+
+ /* timing.c */
+-#define InitTimers libmetis__InitTimers
+-#define PrintTimers libmetis__PrintTimers
++#define InitTimers feel__libmetis__InitTimers
++#define PrintTimers feel__libmetis__PrintTimers
+
+ /* util.c */
+-#define iargmax_strd libmetis__iargmax_strd
+-#define iargmax_nrm libmetis__iargmax_nrm
+-#define iargmax2_nrm libmetis__iargmax2_nrm
+-#define rargmax2 libmetis__rargmax2
+-#define InitRandom libmetis__InitRandom
+-#define metis_rcode libmetis__metis_rcode
++#define iargmax_strd feel__libmetis__iargmax_strd
++#define iargmax_nrm feel__libmetis__iargmax_nrm
++#define iargmax2_nrm feel__libmetis__iargmax2_nrm
++#define rargmax2 feel__libmetis__rargmax2
++#define InitRandom feel__libmetis__InitRandom
++#define metis_rcode feel__libmetis__metis_rcode
+
+ /* wspace.c */
+-#define AllocateWorkSpace libmetis__AllocateWorkSpace
+-#define AllocateRefinementWorkSpace libmetis__AllocateRefinementWorkSpace
+-#define FreeWorkSpace libmetis__FreeWorkSpace
+-#define wspacemalloc libmetis__wspacemalloc
+-#define wspacepush libmetis__wspacepush
+-#define wspacepop libmetis__wspacepop
+-#define iwspacemalloc libmetis__iwspacemalloc
+-#define rwspacemalloc libmetis__rwspacemalloc
+-#define ikvwspacemalloc libmetis__ikvwspacemalloc
+-#define cnbrpoolReset libmetis__cnbrpoolReset
+-#define cnbrpoolGetNext libmetis__cnbrpoolGetNext
+-#define vnbrpoolReset libmetis__vnbrpoolReset
+-#define vnbrpoolGetNext libmetis__vnbrpoolGetNext
++#define AllocateWorkSpace feel__libmetis__AllocateWorkSpace
++#define AllocateRefinementWorkSpace feel__libmetis__AllocateRefinementWorkSpace
++#define FreeWorkSpace feel__libmetis__FreeWorkSpace
++#define wspacemalloc feel__libmetis__wspacemalloc
++#define wspacepush feel__libmetis__wspacepush
++#define wspacepop feel__libmetis__wspacepop
++#define iwspacemalloc feel__libmetis__iwspacemalloc
++#define rwspacemalloc feel__libmetis__rwspacemalloc
++#define ikvwspacemalloc feel__libmetis__ikvwspacemalloc
++#define cnbrpoolReset feel__libmetis__cnbrpoolReset
++#define cnbrpoolGetNext feel__libmetis__cnbrpoolGetNext
++#define vnbrpoolReset feel__libmetis__vnbrpoolReset
++#define vnbrpoolGetNext feel__libmetis__vnbrpoolGetNext
+
+ #endif
+
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/include/CMakeLists.txt metis/include/CMakeLists.txt
--- /Users/vincentchabannes/github/feelpp/contrib/metis/include/CMakeLists.txt 2015-05-22 07:41:18.000000000 +0200
+++ metis/include/CMakeLists.txt 2016-01-23 16:41:00.000000000 +0100
@@ -1,3 +1,3 @@
if(METIS_INSTALL)
- install(FILES metis.h DESTINATION include)
+ install(FILES feelmetis.h DESTINATION include)
endif()
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/include/feelmetis.h metis/include/feelmetis.h
--- /Users/vincentchabannes/github/feelpp/contrib/metis/include/feelmetis.h 1970-01-01 01:00:00.000000000 +0100
+++ metis/include/feelmetis.h 2016-01-23 16:23:15.000000000 +0100
@@ -0,0 +1,360 @@
+/*!
+\file metis.h
+\brief This file contains function prototypes and constant definitions for METIS
+ *
+\author George
+\date Started 8/9/02
+\version\verbatim $Id$\endverbatim
+*/
+
+#ifndef _METIS_H_
+#define _METIS_H_
+
+/****************************************************************************
+* A set of defines that can be modified by the user
+*****************************************************************************/
+
+//#include <feel/feelcore/feel.hpp>
+
+/*--------------------------------------------------------------------------
+ Specifies the width of the elementary data type that will hold information
+ about vertices and their adjacency lists.
+
+ Possible values:
+ 32 : Use 32 bit signed integers
+ 64 : Use 64 bit signed integers
+
+ A width of 64 should be specified if the number of vertices or the total
+ number of edges in the graph exceed the limits of a 32 bit signed integer
+ i.e., 2^31-1.
+ Proper use of 64 bit integers requires that the c99 standard datatypes
+ int32_t and int64_t are supported by the compiler.
+ GCC does provides these definitions in stdint.h, but it may require some
+ modifications on other architectures.
+--------------------------------------------------------------------------*/
+#if 1 //FEELPP_DOF_ID_BYTES == 8
+# define IDXTYPEWIDTH 64
+#else
+# define IDXTYPEWIDTH 32
+#endif
+
+
+/*--------------------------------------------------------------------------
+ Specifies the data type that will hold floating-point style information.
+
+ Possible values:
+ 32 : single precission floating point (float)
+ 64 : double precission floating point (double)
+--------------------------------------------------------------------------*/
+#if 1 // defined(FEELPP_DEFAULT_DOUBLE_PRECISION)
+# define REALTYPEWIDTH 64
+#else
+# define REALTYPEWIDTH 32
+#endif
+
+
+/****************************************************************************
+* In principle, nothing needs to be changed beyond this point, unless the
+* int32_t and int64_t cannot be found in the normal places.
+*****************************************************************************/
+
+/* Uniform definitions for various compilers */
+#if defined(_MSC_VER)
+ #define COMPILER_MSC
+#endif
+#if defined(__ICC)
+ #define COMPILER_ICC
+#endif
+#if defined(__GNUC__)
+ #define COMPILER_GCC
+#endif
+
+/* Include c99 int definitions and need constants. When building the library,
+ * these are already defined by GKlib; hence the test for _GKLIB_H_ */
+#ifndef _GKLIB_H_
+#ifdef COMPILER_MSC
+#include <limits.h>
+
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+#define PRId32 "I32d"
+#define PRId64 "I64d"
+#define SCNd32 "ld"
+#define SCNd64 "I64d"
+#define INT32_MIN ((int32_t)_I32_MIN)
+#define INT32_MAX _I32_MAX
+#define INT64_MIN ((int64_t)_I64_MIN)
+#define INT64_MAX _I64_MAX
+#else
+#include <inttypes.h>
+#endif
+#endif
+
+
+/*------------------------------------------------------------------------
+* Setup the basic datatypes
+*-------------------------------------------------------------------------*/
+#if IDXTYPEWIDTH == 32
+ typedef int32_t idx_t;
+
+ #define IDX_MAX INT32_MAX
+ #define IDX_MIN INT32_MIN
+
+ #define SCIDX SCNd32
+ #define PRIDX PRId32
+
+ #define strtoidx strtol
+ #define iabs abs
+#elif IDXTYPEWIDTH == 64
+ typedef int64_t idx_t;
+
+ #define IDX_MAX INT64_MAX
+ #define IDX_MIN INT64_MIN
+
+ #define SCIDX SCNd64
+ #define PRIDX PRId64
+
+#ifdef COMPILER_MSC
+ #define strtoidx _strtoi64
+#else
+ #define strtoidx strtoll
+#endif
+ #define iabs labs
+#else
+ #error "Incorrect user-supplied value fo IDXTYPEWIDTH"
+#endif
+
+
+#if REALTYPEWIDTH == 32
+ typedef float real_t;
+
+ #define SCREAL "f"
+ #define PRREAL "f"
+ #define REAL_MAX FLT_MAX
+ #define REAL_MIN FLT_MIN
+ #define REAL_EPSILON FLT_EPSILON
+
+ #define rabs fabsf
+ #define REALEQ(x,y) ((rabs((x)-(y)) <= FLT_EPSILON))
+
+#ifdef COMPILER_MSC
+ #define strtoreal (float)strtod
+#else
+ #define strtoreal strtof
+#endif
+#elif REALTYPEWIDTH == 64
+ typedef double real_t;
+
+ #define SCREAL "lf"
+ #define PRREAL "lf"
+ #define REAL_MAX DBL_MAX
+ #define REAL_MIN DBL_MIN
+ #define REAL_EPSILON DBL_EPSILON
+
+ #define rabs fabs
+ #define REALEQ(x,y) ((rabs((x)-(y)) <= DBL_EPSILON))
+
+ #define strtoreal strtod
+#else
+ #error "Incorrect user-supplied value for REALTYPEWIDTH"
+#endif
+
+
+/*------------------------------------------------------------------------
+* Constant definitions
+*-------------------------------------------------------------------------*/
+/* Metis's version number */
+#define METIS_VER_MAJOR 5
+#define METIS_VER_MINOR 1
+#define METIS_VER_SUBMINOR 0
+
+/* The maximum length of the options[] array */
+#define METIS_NOPTIONS 40
+
+
+
+/*------------------------------------------------------------------------
+* Function prototypes
+*-------------------------------------------------------------------------*/
+
+#ifdef _WINDLL
+#define METIS_API(type) __declspec(dllexport) type __cdecl
+#elif defined(__cdecl)
+#define METIS_API(type) type __cdecl
+#else
+#define METIS_API(type) type
+#endif
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+METIS_API(int) Feel_METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
+ idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
+ idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
+ idx_t *edgecut, idx_t *part);
+
+METIS_API(int) Feel_METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
+ idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
+ idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
+ idx_t *edgecut, idx_t *part);
+
+METIS_API(int) Feel_METIS_MeshToDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *ncommon, idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy);
+
+METIS_API(int) Feel_METIS_MeshToNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy);
+
+METIS_API(int) Feel_METIS_PartMeshNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *vwgt, idx_t *vsize, idx_t *nparts, real_t *tpwgts,
+ idx_t *options, idx_t *objval, idx_t *epart, idx_t *npart);
+
+METIS_API(int) Feel_METIS_PartMeshDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+ idx_t *vwgt, idx_t *vsize, idx_t *ncommon, idx_t *nparts,
+ real_t *tpwgts, idx_t *options, idx_t *objval, idx_t *epart,
+ idx_t *npart);
+
+METIS_API(int) Feel_METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+ idx_t *options, idx_t *perm, idx_t *iperm);
+
+METIS_API(int) Feel_METIS_Free(void *ptr);
+
+METIS_API(int) Feel_METIS_SetDefaultOptions(idx_t *options);
+
+
+/* These functions are used by ParMETIS */
+
+METIS_API(int) Feel_METIS_NodeNDP(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+ idx_t npes, idx_t *options, idx_t *perm, idx_t *iperm,
+ idx_t *sizes);
+
+METIS_API(int) Feel_METIS_ComputeVertexSeparator(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy,
+ idx_t *vwgt, idx_t *options, idx_t *sepsize, idx_t *part);
+
+METIS_API(int) Feel_METIS_NodeRefine(idx_t nvtxs, idx_t *xadj, idx_t *vwgt, idx_t *adjncy,
+ idx_t *where, idx_t *hmarker, real_t ubfactor);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+/*------------------------------------------------------------------------
+* Enum type definitions
+*-------------------------------------------------------------------------*/
+/*! Return codes */
+typedef enum {
+ METIS_OK = 1, /*!< Returned normally */
+ METIS_ERROR_INPUT = -2, /*!< Returned due to erroneous inputs and/or options */
+ METIS_ERROR_MEMORY = -3, /*!< Returned due to insufficient memory */
+ METIS_ERROR = -4 /*!< Some other errors */
+} rstatus_et;
+
+
+/*! Operation type codes */
+typedef enum {
+ METIS_OP_PMETIS,
+ METIS_OP_KMETIS,
+ METIS_OP_OMETIS
+} moptype_et;
+
+
+/*! Options codes (i.e., options[]) */
+typedef enum {
+ METIS_OPTION_PTYPE,
+ METIS_OPTION_OBJTYPE,
+ METIS_OPTION_CTYPE,
+ METIS_OPTION_IPTYPE,
+ METIS_OPTION_RTYPE,
+ METIS_OPTION_DBGLVL,
+ METIS_OPTION_NITER,
+ METIS_OPTION_NCUTS,
+ METIS_OPTION_SEED,
+ METIS_OPTION_NO2HOP,
+ METIS_OPTION_MINCONN,
+ METIS_OPTION_CONTIG,
+ METIS_OPTION_COMPRESS,
+ METIS_OPTION_CCORDER,
+ METIS_OPTION_PFACTOR,
+ METIS_OPTION_NSEPS,
+ METIS_OPTION_UFACTOR,
+ METIS_OPTION_NUMBERING,
+
+ /* Used for command-line parameter purposes */
+ METIS_OPTION_HELP,
+ METIS_OPTION_TPWGTS,
+ METIS_OPTION_NCOMMON,
+ METIS_OPTION_NOOUTPUT,
+ METIS_OPTION_BALANCE,
+ METIS_OPTION_GTYPE,
+ METIS_OPTION_UBVEC
+} moptions_et;
+
+
+/*! Partitioning Schemes */
+typedef enum {
+ METIS_PTYPE_RB,
+ METIS_PTYPE_KWAY
+} mptype_et;
+
+/*! Graph types for meshes */
+typedef enum {
+ METIS_GTYPE_DUAL,
+ METIS_GTYPE_NODAL
+} mgtype_et;
+
+/*! Coarsening Schemes */
+typedef enum {
+ METIS_CTYPE_RM,
+ METIS_CTYPE_SHEM
+} mctype_et;
+
+/*! Initial partitioning schemes */
+typedef enum {
+ METIS_IPTYPE_GROW,
+ METIS_IPTYPE_RANDOM,
+ METIS_IPTYPE_EDGE,
+ METIS_IPTYPE_NODE,
+ METIS_IPTYPE_METISRB
+} miptype_et;
+
+
+/*! Refinement schemes */
+typedef enum {
+ METIS_RTYPE_FM,
+ METIS_RTYPE_GREEDY,
+ METIS_RTYPE_SEP2SIDED,
+ METIS_RTYPE_SEP1SIDED
+} mrtype_et;
+
+
+/*! Debug Levels */
+typedef enum {
+ METIS_DBG_INFO = 1, /*!< Shows various diagnostic messages */
+ METIS_DBG_TIME = 2, /*!< Perform timing analysis */
+ METIS_DBG_COARSEN = 4, /*!< Show the coarsening progress */
+ METIS_DBG_REFINE = 8, /*!< Show the refinement progress */
+ METIS_DBG_IPART = 16, /*!< Show info on initial partitioning */
+ METIS_DBG_MOVEINFO = 32, /*!< Show info on vertex moves during refinement */
+ METIS_DBG_SEPINFO = 64, /*!< Show info on vertex moves during sep refinement */
+ METIS_DBG_CONNINFO = 128, /*!< Show info on minimization of subdomain connectivity */
+ METIS_DBG_CONTIGINFO = 256, /*!< Show info on elimination of connected components */
+ METIS_DBG_MEMORY = 2048 /*!< Show info related to wspace allocation */
+} mdbglvl_et;
+
+
+/* Types of objectives */
+typedef enum {
+ METIS_OBJTYPE_CUT,
+ METIS_OBJTYPE_VOL,
+ METIS_OBJTYPE_NODE
+} mobjtype_et;
+
+
+
+#endif /* _METIS_H_ */
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/CMakeLists.txt metis/libmetis/CMakeLists.txt
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/CMakeLists.txt 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/CMakeLists.txt 2016-01-23 17:14:48.000000000 +0100
@@ -13,13 +13,13 @@ foreach(file ${metis_sources})
endforeach()
# Build libmetis.
-add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
+add_library(feelpp_metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
if(UNIX)
- target_link_libraries(metis m)
+ target_link_libraries(feelpp_metis m)
endif()
if(METIS_INSTALL)
- install(TARGETS metis
+ install(TARGETS feelpp_metis
LIBRARY DESTINATION lib
RUNTIME DESTINATION lib
ARCHIVE DESTINATION lib)
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/auxapi.c metis/libmetis/auxapi.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/auxapi.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/auxapi.c 2016-01-23 15:49:34.000000000 +0100
@@ -20,7 +20,7 @@
METIS.
*/
/*************************************************************************/
-int METIS_Free(void *ptr)
+int Feel_METIS_Free(void *ptr)
{
if (ptr != NULL) free(ptr);
return METIS_OK;
@@ -33,7 +33,7 @@ int METIS_Free(void *ptr)
\param options points to an array of size at least METIS_NOPTIONS.
*/
/*************************************************************************/
-int METIS_SetDefaultOptions(idx_t *options)
+int Feel_METIS_SetDefaultOptions(idx_t *options)
{
iset(METIS_NOPTIONS, -1, options);
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/frename.c metis/libmetis/frename.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/frename.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/frename.c 2016-01-23 09:54:21.000000000 +0100
@@ -21,7 +21,7 @@
FRENAME(
- METIS_PartGraphRecursive,
+ Feel_METIS_PartGraphRecursive,
(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts,
real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part),
@@ -36,7 +36,7 @@ FRENAME(
FRENAME(
- METIS_PartGraphKway,
+ Feel_METIS_PartGraphKway,
(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts,
real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part),
@@ -50,7 +50,7 @@ FRENAME(
)
FRENAME(
- METIS_MeshToDual,
+ Feel_METIS_MeshToDual,
(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *ncommon, idx_t *numflag,
idx_t **r_xadj, idx_t **r_adjncy),
(ne, nn, eptr, eind, ncommon, numflag, r_xadj, r_adjncy),
@@ -62,7 +62,7 @@ FRENAME(
FRENAME(
- METIS_MeshToNodal,
+ Feel_METIS_MeshToNodal,
(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *numflag, idx_t **r_xadj,
idx_t **r_adjncy),
(ne, nn, eptr, eind, numflag, r_xadj, r_adjncy),
@@ -74,7 +74,7 @@ FRENAME(
FRENAME(
- METIS_PartMeshNodal,
+ Feel_METIS_PartMeshNodal,
(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *vwgt, idx_t *vsize,
idx_t *nparts, real_t *tpwgts, idx_t *options, idx_t *objval, idx_t *epart,
idx_t *npart),
@@ -87,7 +87,7 @@ FRENAME(
FRENAME(
- METIS_PartMeshDual,
+ Feel_METIS_PartMeshDual,
(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind, idx_t *vwgt, idx_t *vsize,
idx_t *ncommon, idx_t *nparts, real_t *tpwgts, idx_t *options, idx_t *objval,
idx_t *epart, idx_t *npart),
@@ -100,7 +100,7 @@ FRENAME(
FRENAME(
- METIS_NodeND,
+ Feel_METIS_NodeND,
(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, idx_t *options, idx_t *perm,
idx_t *iperm),
(nvtxs, xadj, adjncy, vwgt, options, perm, iperm),
@@ -112,7 +112,7 @@ FRENAME(
FRENAME(
- METIS_Free,
+ Feel_METIS_Free,
(void *ptr),
(ptr),
METIS_FREE,
@@ -123,7 +123,7 @@ FRENAME(
FRENAME(
- METIS_SetDefaultOptions,
+ Feel_METIS_SetDefaultOptions,
(idx_t *options),
(options),
METIS_SETDEFAULTOPTIONS,
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/gklib_rename.h metis/libmetis/gklib_rename.h
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/gklib_rename.h 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/gklib_rename.h 2016-01-24 10:19:51.000000000 +0100
@@ -17,105 +17,105 @@
#define _LIBMETIS_GKLIB_RENAME_H_
/* gklib.c - generated from the .o files using the ./utils/listundescapedsumbols.csh */
-#define iAllocMatrix libmetis__iAllocMatrix
-#define iFreeMatrix libmetis__iFreeMatrix
-#define iSetMatrix libmetis__iSetMatrix
-#define iargmax libmetis__iargmax
-#define iargmax_n libmetis__iargmax_n
-#define iargmin libmetis__iargmin
-#define iarray2csr libmetis__iarray2csr
-#define iaxpy libmetis__iaxpy
-#define icopy libmetis__icopy
-#define idot libmetis__idot
-#define iincset libmetis__iincset
-#define ikvAllocMatrix libmetis__ikvAllocMatrix
-#define ikvFreeMatrix libmetis__ikvFreeMatrix
-#define ikvSetMatrix libmetis__ikvSetMatrix
-#define ikvcopy libmetis__ikvcopy
-#define ikvmalloc libmetis__ikvmalloc
-#define ikvrealloc libmetis__ikvrealloc
-#define ikvset libmetis__ikvset
-#define ikvsmalloc libmetis__ikvsmalloc
-#define ikvsortd libmetis__ikvsortd
-#define ikvsorti libmetis__ikvsorti
-#define ikvsortii libmetis__ikvsortii
-#define imalloc libmetis__imalloc
-#define imax libmetis__imax
-#define imin libmetis__imin
-#define inorm2 libmetis__inorm2
-#define ipqCheckHeap libmetis__ipqCheckHeap
-#define ipqCreate libmetis__ipqCreate
-#define ipqDelete libmetis__ipqDelete
-#define ipqDestroy libmetis__ipqDestroy
-#define ipqFree libmetis__ipqFree
-#define ipqGetTop libmetis__ipqGetTop
-#define ipqInit libmetis__ipqInit
-#define ipqInsert libmetis__ipqInsert
-#define ipqLength libmetis__ipqLength
-#define ipqReset libmetis__ipqReset
-#define ipqSeeKey libmetis__ipqSeeKey
-#define ipqSeeTopKey libmetis__ipqSeeTopKey
-#define ipqSeeTopVal libmetis__ipqSeeTopVal
-#define ipqUpdate libmetis__ipqUpdate
-#define isrand libmetis__isrand
-#define irand libmetis__irand
-#define irandArrayPermute libmetis__irandArrayPermute
-#define irandArrayPermuteFine libmetis__irandArrayPermuteFine
-#define irandInRange libmetis__irandInRange
-#define irealloc libmetis__irealloc
-#define iscale libmetis__iscale
-#define iset libmetis__iset
-#define ismalloc libmetis__ismalloc
-#define isortd libmetis__isortd
-#define isorti libmetis__isorti
-#define isrand libmetis__isrand
-#define isum libmetis__isum
-#define rAllocMatrix libmetis__rAllocMatrix
-#define rFreeMatrix libmetis__rFreeMatrix
-#define rSetMatrix libmetis__rSetMatrix
-#define rargmax libmetis__rargmax
-#define rargmax_n libmetis__rargmax_n
-#define rargmin libmetis__rargmin
-#define raxpy libmetis__raxpy
-#define rcopy libmetis__rcopy
-#define rdot libmetis__rdot
-#define rincset libmetis__rincset
-#define rkvAllocMatrix libmetis__rkvAllocMatrix
-#define rkvFreeMatrix libmetis__rkvFreeMatrix
-#define rkvSetMatrix libmetis__rkvSetMatrix
-#define rkvcopy libmetis__rkvcopy
-#define rkvmalloc libmetis__rkvmalloc
-#define rkvrealloc libmetis__rkvrealloc
-#define rkvset libmetis__rkvset
-#define rkvsmalloc libmetis__rkvsmalloc
-#define rkvsortd libmetis__rkvsortd
-#define rkvsorti libmetis__rkvsorti
-#define rmalloc libmetis__rmalloc
-#define rmax libmetis__rmax
-#define rmin libmetis__rmin
-#define rnorm2 libmetis__rnorm2
-#define rpqCheckHeap libmetis__rpqCheckHeap
-#define rpqCreate libmetis__rpqCreate
-#define rpqDelete libmetis__rpqDelete
-#define rpqDestroy libmetis__rpqDestroy
-#define rpqFree libmetis__rpqFree
-#define rpqGetTop libmetis__rpqGetTop
-#define rpqInit libmetis__rpqInit
-#define rpqInsert libmetis__rpqInsert
-#define rpqLength libmetis__rpqLength
-#define rpqReset libmetis__rpqReset
-#define rpqSeeKey libmetis__rpqSeeKey
-#define rpqSeeTopKey libmetis__rpqSeeTopKey
-#define rpqSeeTopVal libmetis__rpqSeeTopVal
-#define rpqUpdate libmetis__rpqUpdate
-#define rrealloc libmetis__rrealloc
-#define rscale libmetis__rscale
-#define rset libmetis__rset
-#define rsmalloc libmetis__rsmalloc
-#define rsortd libmetis__rsortd
-#define rsorti libmetis__rsorti
-#define rsum libmetis__rsum
-#define uvwsorti libmetis__uvwsorti
+#define iAllocMatrix feel__libmetis__iAllocMatrix
+#define iFreeMatrix feel__libmetis__iFreeMatrix
+#define iSetMatrix feel__libmetis__iSetMatrix
+#define iargmax feel__libmetis__iargmax
+#define iargmax_n feel__libmetis__iargmax_n
+#define iargmin feel__libmetis__iargmin
+#define iarray2csr feel__libmetis__iarray2csr
+#define iaxpy feel__libmetis__iaxpy
+#define icopy feel__libmetis__icopy
+#define idot feel__libmetis__idot
+#define iincset feel__libmetis__iincset
+#define ikvAllocMatrix feel__libmetis__ikvAllocMatrix
+#define ikvFreeMatrix feel__libmetis__ikvFreeMatrix
+#define ikvSetMatrix feel__libmetis__ikvSetMatrix
+#define ikvcopy feel__libmetis__ikvcopy
+#define ikvmalloc feel__libmetis__ikvmalloc
+#define ikvrealloc feel__libmetis__ikvrealloc
+#define ikvset feel__libmetis__ikvset
+#define ikvsmalloc feel__libmetis__ikvsmalloc
+#define ikvsortd feel__libmetis__ikvsortd
+#define ikvsorti feel__libmetis__ikvsorti
+#define ikvsortii feel__libmetis__ikvsortii
+#define imalloc feel__libmetis__imalloc
+#define imax feel__libmetis__imax
+#define imin feel__libmetis__imin
+#define inorm2 feel__libmetis__inorm2
+#define ipqCheckHeap feel__libmetis__ipqCheckHeap
+#define ipqCreate feel__libmetis__ipqCreate
+#define ipqDelete feel__libmetis__ipqDelete
+#define ipqDestroy feel__libmetis__ipqDestroy
+#define ipqFree feel__libmetis__ipqFree
+#define ipqGetTop feel__libmetis__ipqGetTop
+#define ipqInit feel__libmetis__ipqInit
+#define ipqInsert feel__libmetis__ipqInsert
+#define ipqLength feel__libmetis__ipqLength
+#define ipqReset feel__libmetis__ipqReset
+#define ipqSeeKey feel__libmetis__ipqSeeKey
+#define ipqSeeTopKey feel__libmetis__ipqSeeTopKey
+#define ipqSeeTopVal feel__libmetis__ipqSeeTopVal
+#define ipqUpdate feel__libmetis__ipqUpdate
+#define isrand feel__libmetis__isrand
+#define irand feel__libmetis__irand
+#define irandArrayPermute feel__libmetis__irandArrayPermute
+#define irandArrayPermuteFine feel__libmetis__irandArrayPermuteFine
+#define irandInRange feel__libmetis__irandInRange
+#define irealloc feel__libmetis__irealloc
+#define iscale feel__libmetis__iscale
+#define iset feel__libmetis__iset
+#define ismalloc feel__libmetis__ismalloc
+#define isortd feel__libmetis__isortd
+#define isorti feel__libmetis__isorti
+#define isrand feel__libmetis__isrand
+#define isum feel__libmetis__isum
+#define rAllocMatrix feel__libmetis__rAllocMatrix
+#define rFreeMatrix feel__libmetis__rFreeMatrix
+#define rSetMatrix feel__libmetis__rSetMatrix
+#define rargmax feel__libmetis__rargmax
+#define rargmax_n feel__libmetis__rargmax_n
+#define rargmin feel__libmetis__rargmin
+#define raxpy feel__libmetis__raxpy
+#define rcopy feel__libmetis__rcopy
+#define rdot feel__libmetis__rdot
+#define rincset feel__libmetis__rincset
+#define rkvAllocMatrix feel__libmetis__rkvAllocMatrix
+#define rkvFreeMatrix feel__libmetis__rkvFreeMatrix
+#define rkvSetMatrix feel__libmetis__rkvSetMatrix
+#define rkvcopy feel__libmetis__rkvcopy
+#define rkvmalloc feel__libmetis__rkvmalloc
+#define rkvrealloc feel__libmetis__rkvrealloc
+#define rkvset feel__libmetis__rkvset
+#define rkvsmalloc feel__libmetis__rkvsmalloc
+#define rkvsortd feel__libmetis__rkvsortd
+#define rkvsorti feel__libmetis__rkvsorti
+#define rmalloc feel__libmetis__rmalloc
+#define rmax feel__libmetis__rmax
+#define rmin feel__libmetis__rmin
+#define rnorm2 feel__libmetis__rnorm2
+#define rpqCheckHeap feel__libmetis__rpqCheckHeap
+#define rpqCreate feel__libmetis__rpqCreate
+#define rpqDelete feel__libmetis__rpqDelete
+#define rpqDestroy feel__libmetis__rpqDestroy
+#define rpqFree feel__libmetis__rpqFree
+#define rpqGetTop feel__libmetis__rpqGetTop
+#define rpqInit feel__libmetis__rpqInit
+#define rpqInsert feel__libmetis__rpqInsert
+#define rpqLength feel__libmetis__rpqLength
+#define rpqReset feel__libmetis__rpqReset
+#define rpqSeeKey feel__libmetis__rpqSeeKey
+#define rpqSeeTopKey feel__libmetis__rpqSeeTopKey
+#define rpqSeeTopVal feel__libmetis__rpqSeeTopVal
+#define rpqUpdate feel__libmetis__rpqUpdate
+#define rrealloc feel__libmetis__rrealloc
+#define rscale feel__libmetis__rscale
+#define rset feel__libmetis__rset
+#define rsmalloc feel__libmetis__rsmalloc
+#define rsortd feel__libmetis__rsortd
+#define rsorti feel__libmetis__rsorti
+#define rsum feel__libmetis__rsum
+#define uvwsorti feel__libmetis__uvwsorti
#endif
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/kmetis.c metis/libmetis/kmetis.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/kmetis.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/kmetis.c 2016-01-23 13:19:39.000000000 +0100
@@ -15,7 +15,7 @@
/*************************************************************************/
/*! This function is the entry point for MCKMETIS */
/*************************************************************************/
-int METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy,
+int Feel_METIS_PartGraphKway(idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy,
idx_t *vwgt, idx_t *vsize, idx_t *adjwgt, idx_t *nparts,
real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *objval,
idx_t *part)
@@ -176,7 +176,7 @@ void InitKWayPartitioning(ctrl_t *ctrl,
real_t *ubvec=NULL;
int status;
- METIS_SetDefaultOptions(options);
+ Feel_METIS_SetDefaultOptions(options);
options[METIS_OPTION_NITER] = 10;
options[METIS_OPTION_OBJTYPE] = METIS_OBJTYPE_CUT;
options[METIS_OPTION_NO2HOP] = ctrl->no2hop;
@@ -191,7 +191,7 @@ void InitKWayPartitioning(ctrl_t *ctrl,
case METIS_OBJTYPE_CUT:
case METIS_OBJTYPE_VOL:
options[METIS_OPTION_NCUTS] = ctrl->nIparts;
- status = METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
+ status = Feel_METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
graph->xadj, graph->adjncy, graph->vwgt, graph->vsize,
graph->adjwgt, &ctrl->nparts, ctrl->tpwgts, ubvec,
options, &curobj, graph->where);
@@ -208,7 +208,7 @@ void InitKWayPartitioning(ctrl_t *ctrl,
ntrials = (ctrl->nIparts+1)/2;
for (i=0; i<ntrials; i++) {
- status = METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
+ status = Feel_METIS_PartGraphRecursive(&graph->nvtxs, &graph->ncon,
graph->xadj, graph->adjncy, graph->vwgt, graph->vsize,
graph->adjwgt, &ctrl->nparts, ctrl->tpwgts, ubvec,
options, &curobj, graph->where);
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/mesh.c metis/libmetis/mesh.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/mesh.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/mesh.c 2016-01-23 13:14:27.000000000 +0100
@@ -41,7 +41,7 @@
*/
/*****************************************************************************/
-int METIS_MeshToDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+int Feel_METIS_MeshToDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
idx_t *ncommon, idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy)
{
int sigrval=0, renumber=0;
@@ -111,7 +111,7 @@ SIGTHROW:
*/
/*****************************************************************************/
-int METIS_MeshToNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+int Feel_METIS_MeshToNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
idx_t *numflag, idx_t **r_xadj, idx_t **r_adjncy)
{
int sigrval=0, renumber=0;
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/meshpart.c metis/libmetis/meshpart.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/meshpart.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/meshpart.c 2016-01-23 13:11:42.000000000 +0100
@@ -19,7 +19,7 @@
* This function partitions a finite element mesh by partitioning its nodal
* graph using KMETIS and then assigning elements in a load balanced fashion.
**************************************************************************/
-int METIS_PartMeshNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+int Feel_METIS_PartMeshNodal(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
idx_t *vwgt, idx_t *vsize, idx_t *nparts, real_t *tpwgts,
idx_t *options, idx_t *objval, idx_t *epart, idx_t *npart)
{
@@ -47,16 +47,16 @@ int METIS_PartMeshNodal(idx_t *ne, idx_t
}
/* get the nodal graph */
- rstatus = METIS_MeshToNodal(ne, nn, eptr, eind, &pnumflag, &xadj, &adjncy);
+ rstatus = Feel_METIS_MeshToNodal(ne, nn, eptr, eind, &pnumflag, &xadj, &adjncy);
if (rstatus != METIS_OK)
raise(SIGERR);
/* partition the graph */
if (ptype == METIS_PTYPE_KWAY)
- rstatus = METIS_PartGraphKway(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ rstatus = Feel_METIS_PartGraphKway(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
nparts, tpwgts, NULL, options, objval, npart);
else
- rstatus = METIS_PartGraphRecursive(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ rstatus = Feel_METIS_PartGraphRecursive(nn, &ncon, xadj, adjncy, vwgt, vsize, NULL,
nparts, tpwgts, NULL, options, objval, npart);
if (rstatus != METIS_OK)
@@ -72,8 +72,8 @@ SIGTHROW:
options[METIS_OPTION_NUMBERING] = 1;
}
- METIS_Free(xadj);
- METIS_Free(adjncy);
+ Feel_METIS_Free(xadj);
+ Feel_METIS_Free(adjncy);
gk_siguntrap();
gk_malloc_cleanup(0);
@@ -87,7 +87,7 @@ SIGTHROW:
* This function partitions a finite element mesh by partitioning its dual
* graph using KMETIS and then assigning nodes in a load balanced fashion.
**************************************************************************/
-int METIS_PartMeshDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
+int Feel_METIS_PartMeshDual(idx_t *ne, idx_t *nn, idx_t *eptr, idx_t *eind,
idx_t *vwgt, idx_t *vsize, idx_t *ncommon, idx_t *nparts,
real_t *tpwgts, idx_t *options, idx_t *objval, idx_t *epart,
idx_t *npart)
@@ -117,16 +117,16 @@ int METIS_PartMeshDual(idx_t *ne, idx_t
}
/* get the dual graph */
- rstatus = METIS_MeshToDual(ne, nn, eptr, eind, ncommon, &pnumflag, &xadj, &adjncy);
+ rstatus = Feel_METIS_MeshToDual(ne, nn, eptr, eind, ncommon, &pnumflag, &xadj, &adjncy);
if (rstatus != METIS_OK)
raise(SIGERR);
/* partition the graph */
if (ptype == METIS_PTYPE_KWAY)
- rstatus = METIS_PartGraphKway(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ rstatus = Feel_METIS_PartGraphKway(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
nparts, tpwgts, NULL, options, objval, epart);
else
- rstatus = METIS_PartGraphRecursive(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
+ rstatus = Feel_METIS_PartGraphRecursive(ne, &ncon, xadj, adjncy, vwgt, vsize, NULL,
nparts, tpwgts, NULL, options, objval, epart);
if (rstatus != METIS_OK)
@@ -161,8 +161,8 @@ SIGTHROW:
options[METIS_OPTION_NUMBERING] = 1;
}
- METIS_Free(xadj);
- METIS_Free(adjncy);
+ Feel_METIS_Free(xadj);
+ Feel_METIS_Free(adjncy);
gk_siguntrap();
gk_malloc_cleanup(0);
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/metislib.h metis/libmetis/metislib.h
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/metislib.h 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/metislib.h 2016-01-24 10:20:32.000000000 +0100
@@ -21,7 +21,7 @@
#endif
-#include <metis.h>
+#include <feelmetis.h>
#include <rename.h>
#include <gklib_defs.h>
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/ometis.c metis/libmetis/ometis.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/ometis.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/ometis.c 2016-01-23 13:15:24.000000000 +0100
@@ -40,7 +40,7 @@
the original and permuted matrices, then A[i] = A'[iperm[i]].
*/
/*************************************************************************/
-int METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+int Feel_METIS_NodeND(idx_t *nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
idx_t *options, idx_t *perm, idx_t *iperm)
{
int sigrval=0, renumber=0;
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/parmetis.c metis/libmetis/parmetis.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/parmetis.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/parmetis.c 2016-01-23 13:21:26.000000000 +0100
@@ -25,7 +25,7 @@
sizes array.
*/
/*************************************************************************/
-int METIS_NodeNDP(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+int Feel_METIS_NodeNDP(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
idx_t npes, idx_t *options, idx_t *perm, idx_t *iperm, idx_t *sizes)
{
idx_t i, ii, j, l, nnvtxs=0;
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/pmetis.c metis/libmetis/pmetis.c
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/pmetis.c 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/pmetis.c 2016-01-23 13:18:48.000000000 +0100
@@ -88,7 +88,7 @@
*/
/*************************************************************************/
-int METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
+int Feel_METIS_PartGraphRecursive(idx_t *nvtxs, idx_t *ncon, idx_t *xadj,
idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt,
idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options,
idx_t *objval, idx_t *part)
diff -rupN /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/rename.h metis/libmetis/rename.h
--- /Users/vincentchabannes/github/feelpp/contrib/metis/libmetis/rename.h 2015-05-22 07:41:18.000000000 +0200
+++ metis/libmetis/rename.h 2016-01-23 15:56:33.000000000 +0100
@@ -18,248 +18,248 @@
/* balance.c */
-#define Balance2Way libmetis__Balance2Way
-#define Bnd2WayBalance libmetis__Bnd2WayBalance
-#define General2WayBalance libmetis__General2WayBalance
-#define McGeneral2WayBalance libmetis__McGeneral2WayBalance
+#define Balance2Way feel__libmetis__Balance2Way
+#define Bnd2WayBalance feel__libmetis__Bnd2WayBalance
+#define General2WayBalance feel__libmetis__General2WayBalance
+#define McGeneral2WayBalance feel__libmetis__McGeneral2WayBalance
/* bucketsort.c */
-#define BucketSortKeysInc libmetis__BucketSortKeysInc
+#define BucketSortKeysInc feel__libmetis__BucketSortKeysInc
/* checkgraph.c */
-#define CheckGraph libmetis__CheckGraph
-#define CheckInputGraphWeights libmetis__CheckInputGraphWeights
-#define FixGraph libmetis__FixGraph
+#define CheckGraph feel__libmetis__CheckGraph
+#define CheckInputGraphWeights feel__libmetis__CheckInputGraphWeights
+#define FixGraph feel__libmetis__FixGraph
/* coarsen.c */
-#define CoarsenGraph libmetis__CoarsenGraph
-#define Match_RM libmetis__Match_RM
-#define Match_SHEM libmetis__Match_SHEM
-#define Match_2Hop libmetis__Match_2Hop
-#define Match_2HopAny libmetis__Match_2HopAny
-#define Match_2HopAll libmetis__Match_2HopAll
-#define PrintCGraphStats libmetis__PrintCGraphStats
-#define CreateCoarseGraph libmetis__CreateCoarseGraph
-#define CreateCoarseGraphNoMask libmetis__CreateCoarseGraphNoMask
-#define CreateCoarseGraphPerm libmetis__CreateCoarseGraphPerm
-#define SetupCoarseGraph libmetis__SetupCoarseGraph
-#define ReAdjustMemory libmetis__ReAdjustMemory
+#define CoarsenGraph feel__libmetis__CoarsenGraph
+#define Match_RM feel__libmetis__Match_RM
+#define Match_SHEM feel__libmetis__Match_SHEM
+#define Match_2Hop feel__libmetis__Match_2Hop
+#define Match_2HopAny feel__libmetis__Match_2HopAny
+#define Match_2HopAll feel__libmetis__Match_2HopAll
+#define PrintCGraphStats feel__libmetis__PrintCGraphStats
+#define CreateCoarseGraph feel__libmetis__CreateCoarseGraph
+#define CreateCoarseGraphNoMask feel__libmetis__CreateCoarseGraphNoMask
+#define CreateCoarseGraphPerm feel__libmetis__CreateCoarseGraphPerm
+#define SetupCoarseGraph feel__libmetis__SetupCoarseGraph
+#define ReAdjustMemory feel__libmetis__ReAdjustMemory
/* compress.c */
-#define CompressGraph libmetis__CompressGraph
-#define PruneGraph libmetis__PruneGraph
+#define CompressGraph feel__libmetis__CompressGraph
+#define PruneGraph feel__libmetis__PruneGraph
/* contig.c */
-#define FindPartitionInducedComponents libmetis__FindPartitionInducedComponents
-#define IsConnected libmetis__IsConnected
-#define IsConnectedSubdomain libmetis__IsConnectedSubdomain
-#define FindSepInducedComponents libmetis__FindSepInducedComponents
-#define EliminateComponents libmetis__EliminateComponents
-#define MoveGroupContigForCut libmetis__MoveGroupContigForCut
-#define MoveGroupContigForVol libmetis__MoveGroupContigForVol
+#define FindPartitionInducedComponents feel__libmetis__FindPartitionInducedComponents
+#define IsConnected feel__libmetis__IsConnected
+#define IsConnectedSubdomain feel__libmetis__IsConnectedSubdomain
+#define FindSepInducedComponents feel__libmetis__FindSepInducedComponents
+#define EliminateComponents feel__libmetis__EliminateComponents
+#define MoveGroupContigForCut feel__libmetis__MoveGroupContigForCut
+#define MoveGroupContigForVol feel__libmetis__MoveGroupContigForVol
/* debug.c */
-#define ComputeCut libmetis__ComputeCut
-#define ComputeVolume libmetis__ComputeVolume
-#define ComputeMaxCut libmetis__ComputeMaxCut
-#define CheckBnd libmetis__CheckBnd
-#define CheckBnd2 libmetis__CheckBnd2
-#define CheckNodeBnd libmetis__CheckNodeBnd
-#define CheckRInfo libmetis__CheckRInfo
-#define CheckNodePartitionParams libmetis__CheckNodePartitionParams
-#define IsSeparable libmetis__IsSeparable
-#define CheckKWayVolPartitionParams libmetis__CheckKWayVolPartitionParams
+#define ComputeCut feel__libmetis__ComputeCut
+#define ComputeVolume feel__libmetis__ComputeVolume
+#define ComputeMaxCut feel__libmetis__ComputeMaxCut
+#define CheckBnd feel__libmetis__CheckBnd
+#define CheckBnd2 feel__libmetis__CheckBnd2
+#define CheckNodeBnd feel__libmetis__CheckNodeBnd
+#define CheckRInfo feel__libmetis__CheckRInfo
+#define CheckNodePartitionParams feel__libmetis__CheckNodePartitionParams
+#define IsSeparable feel__libmetis__IsSeparable
+#define CheckKWayVolPartitionParams feel__libmetis__CheckKWayVolPartitionParams
/* fm.c */
-#define FM_2WayRefine libmetis__FM_2WayRefine
-#define FM_2WayCutRefine libmetis__FM_2WayCutRefine
-#define FM_Mc2WayCutRefine libmetis__FM_Mc2WayCutRefine
-#define SelectQueue libmetis__SelectQueue
-#define Print2WayRefineStats libmetis__Print2WayRefineStats
+#define FM_2WayRefine feel__libmetis__FM_2WayRefine
+#define FM_2WayCutRefine feel__libmetis__FM_2WayCutRefine
+#define FM_Mc2WayCutRefine feel__libmetis__FM_Mc2WayCutRefine
+#define SelectQueue feel__libmetis__SelectQueue
+#define Print2WayRefineStats feel__libmetis__Print2WayRefineStats
/* fortran.c */
-#define Change2CNumbering libmetis__Change2CNumbering
-#define Change2FNumbering libmetis__Change2FNumbering
-#define Change2FNumbering2 libmetis__Change2FNumbering2
-#define Change2FNumberingOrder libmetis__Change2FNumberingOrder
-#define ChangeMesh2CNumbering libmetis__ChangeMesh2CNumbering
-#define ChangeMesh2FNumbering libmetis__ChangeMesh2FNumbering
-#define ChangeMesh2FNumbering2 libmetis__ChangeMesh2FNumbering2
+#define Change2CNumbering feel__libmetis__Change2CNumbering
+#define Change2FNumbering feel__libmetis__Change2FNumbering
+#define Change2FNumbering2 feel__libmetis__Change2FNumbering2
+#define Change2FNumberingOrder feel__libmetis__Change2FNumberingOrder
+#define ChangeMesh2CNumbering feel__libmetis__ChangeMesh2CNumbering
+#define ChangeMesh2FNumbering feel__libmetis__ChangeMesh2FNumbering
+#define ChangeMesh2FNumbering2 feel__libmetis__ChangeMesh2FNumbering2
/* graph.c */
-#define SetupGraph libmetis__SetupGraph
-#define SetupGraph_adjrsum libmetis__SetupGraph_adjrsum
-#define SetupGraph_tvwgt libmetis__SetupGraph_tvwgt
-#define SetupGraph_label libmetis__SetupGraph_label
-#define SetupSplitGraph libmetis__SetupSplitGraph
-#define CreateGraph libmetis__CreateGraph
-#define InitGraph libmetis__InitGraph
-#define FreeRData libmetis__FreeRData
-#define FreeGraph libmetis__FreeGraph
+#define SetupGraph feel__libmetis__SetupGraph
+#define SetupGraph_adjrsum feel__libmetis__SetupGraph_adjrsum
+#define SetupGraph_tvwgt feel__libmetis__SetupGraph_tvwgt
+#define SetupGraph_label feel__libmetis__SetupGraph_label
+#define SetupSplitGraph feel__libmetis__SetupSplitGraph
+#define CreateGraph feel__libmetis__CreateGraph
+#define InitGraph feel__libmetis__InitGraph
+#define FreeRData feel__libmetis__FreeRData
+#define FreeGraph feel__libmetis__FreeGraph
/* initpart.c */
-#define Init2WayPartition libmetis__Init2WayPartition
-#define InitSeparator libmetis__InitSeparator
-#define RandomBisection libmetis__RandomBisection
-#define GrowBisection libmetis__GrowBisection
-#define McRandomBisection libmetis__McRandomBisection
-#define McGrowBisection libmetis__McGrowBisection
-#define GrowBisectionNode libmetis__GrowBisectionNode
+#define Init2WayPartition feel__libmetis__Init2WayPartition
+#define InitSeparator feel__libmetis__InitSeparator
+#define RandomBisection feel__libmetis__RandomBisection
+#define GrowBisection feel__libmetis__GrowBisection
+#define McRandomBisection feel__libmetis__McRandomBisection
+#define McGrowBisection feel__libmetis__McGrowBisection
+#define GrowBisectionNode feel__libmetis__GrowBisectionNode
/* kmetis.c */
-#define MlevelKWayPartitioning libmetis__MlevelKWayPartitioning
-#define InitKWayPartitioning libmetis__InitKWayPartitioning
+#define MlevelKWayPartitioning feel__libmetis__MlevelKWayPartitioning
+#define InitKWayPartitioning feel__libmetis__InitKWayPartitioning
/* kwayfm.c */
-#define Greedy_KWayOptimize libmetis__Greedy_KWayOptimize
-#define Greedy_KWayCutOptimize libmetis__Greedy_KWayCutOptimize
-#define Greedy_KWayVolOptimize libmetis__Greedy_KWayVolOptimize
-#define Greedy_McKWayCutOptimize libmetis__Greedy_McKWayCutOptimize
-#define Greedy_McKWayVolOptimize libmetis__Greedy_McKWayVolOptimize
-#define IsArticulationNode libmetis__IsArticulationNode
-#define KWayVolUpdate libmetis__KWayVolUpdate
+#define Greedy_KWayOptimize feel__libmetis__Greedy_KWayOptimize
+#define Greedy_KWayCutOptimize feel__libmetis__Greedy_KWayCutOptimize
+#define Greedy_KWayVolOptimize feel__libmetis__Greedy_KWayVolOptimize
+#define Greedy_McKWayCutOptimize feel__libmetis__Greedy_McKWayCutOptimize
+#define Greedy_McKWayVolOptimize feel__libmetis__Greedy_McKWayVolOptimize
+#define IsArticulationNode feel__libmetis__IsArticulationNode
+#define KWayVolUpdate feel__libmetis__KWayVolUpdate
/* kwayrefine.c */
-#define RefineKWay libmetis__RefineKWay
-#define AllocateKWayPartitionMemory libmetis__AllocateKWayPartitionMemory
-#define ComputeKWayPartitionParams libmetis__ComputeKWayPartitionParams
-#define ProjectKWayPartition libmetis__ProjectKWayPartition
-#define ComputeKWayBoundary libmetis__ComputeKWayBoundary
-#define ComputeKWayVolGains libmetis__ComputeKWayVolGains
-#define IsBalanced libmetis__IsBalanced
+#define RefineKWay feel__libmetis__RefineKWay
+#define AllocateKWayPartitionMemory feel__libmetis__AllocateKWayPartitionMemory
+#define ComputeKWayPartitionParams feel__libmetis__ComputeKWayPartitionParams
+#define ProjectKWayPartition feel__libmetis__ProjectKWayPartition
+#define ComputeKWayBoundary feel__libmetis__ComputeKWayBoundary
+#define ComputeKWayVolGains feel__libmetis__ComputeKWayVolGains
+#define IsBalanced feel__libmetis__IsBalanced
/* mcutil */
-#define rvecle libmetis__rvecle
-#define rvecge libmetis__rvecge
-#define rvecsumle libmetis__rvecsumle
-#define rvecmaxdiff libmetis__rvecmaxdiff
-#define ivecle libmetis__ivecle
-#define ivecge libmetis__ivecge
-#define ivecaxpylez libmetis__ivecaxpylez
-#define ivecaxpygez libmetis__ivecaxpygez
-#define BetterVBalance libmetis__BetterVBalance
-#define BetterBalance2Way libmetis__BetterBalance2Way
-#define BetterBalanceKWay libmetis__BetterBalanceKWay
-#define ComputeLoadImbalance libmetis__ComputeLoadImbalance
-#define ComputeLoadImbalanceDiff libmetis__ComputeLoadImbalanceDiff
-#define ComputeLoadImbalanceDiffVec libmetis__ComputeLoadImbalanceDiffVec
-#define ComputeLoadImbalanceVec libmetis__ComputeLoadImbalanceVec
+#define rvecle feel__libmetis__rvecle
+#define rvecge feel__libmetis__rvecge
+#define rvecsumle feel__libmetis__rvecsumle
+#define rvecmaxdiff feel__libmetis__rvecmaxdiff
+#define ivecle feel__libmetis__ivecle
+#define ivecge feel__libmetis__ivecge
+#define ivecaxpylez feel__libmetis__ivecaxpylez
+#define ivecaxpygez feel__libmetis__ivecaxpygez
+#define BetterVBalance feel__libmetis__BetterVBalance
+#define BetterBalance2Way feel__libmetis__BetterBalance2Way
+#define BetterBalanceKWay feel__libmetis__BetterBalanceKWay
+#define ComputeLoadImbalance feel__libmetis__ComputeLoadImbalance
+#define ComputeLoadImbalanceDiff feel__libmetis__ComputeLoadImbalanceDiff
+#define ComputeLoadImbalanceDiffVec feel__libmetis__ComputeLoadImbalanceDiffVec
+#define ComputeLoadImbalanceVec feel__libmetis__ComputeLoadImbalanceVec
/* mesh.c */
-#define CreateGraphDual libmetis__CreateGraphDual
-#define FindCommonElements libmetis__FindCommonElements
-#define CreateGraphNodal libmetis__CreateGraphNodal
-#define FindCommonNodes libmetis__FindCommonNodes
-#define CreateMesh libmetis__CreateMesh
-#define InitMesh libmetis__InitMesh
-#define FreeMesh libmetis__FreeMesh
+#define CreateGraphDual feel__libmetis__CreateGraphDual
+#define FindCommonElements feel__libmetis__FindCommonElements
+#define CreateGraphNodal feel__libmetis__CreateGraphNodal
+#define FindCommonNodes feel__libmetis__FindCommonNodes
+#define CreateMesh feel__libmetis__CreateMesh
+#define InitMesh feel__libmetis__InitMesh
+#define FreeMesh feel__libmetis__FreeMesh
/* meshpart.c */
-#define InduceRowPartFromColumnPart libmetis__InduceRowPartFromColumnPart
+#define InduceRowPartFromColumnPart feel__libmetis__InduceRowPartFromColumnPart
/* minconn.c */
-#define ComputeSubDomainGraph libmetis__ComputeSubDomainGraph
-#define UpdateEdgeSubDomainGraph libmetis__UpdateEdgeSubDomainGraph
-#define PrintSubDomainGraph libmetis__PrintSubDomainGraph
-#define EliminateSubDomainEdges libmetis__EliminateSubDomainEdges
-#define MoveGroupMinConnForCut libmetis__MoveGroupMinConnForCut
-#define MoveGroupMinConnForVol libmetis__MoveGroupMinConnForVol
+#define ComputeSubDomainGraph feel__libmetis__ComputeSubDomainGraph
+#define UpdateEdgeSubDomainGraph feel__libmetis__UpdateEdgeSubDomainGraph
+#define PrintSubDomainGraph feel__libmetis__PrintSubDomainGraph
+#define EliminateSubDomainEdges feel__libmetis__EliminateSubDomainEdges
+#define MoveGroupMinConnForCut feel__libmetis__MoveGroupMinConnForCut
+#define MoveGroupMinConnForVol feel__libmetis__MoveGroupMinConnForVol
/* mincover.c */
-#define MinCover libmetis__MinCover
-#define MinCover_Augment libmetis__MinCover_Augment
-#define MinCover_Decompose libmetis__MinCover_Decompose
-#define MinCover_ColDFS libmetis__MinCover_ColDFS
-#define MinCover_RowDFS libmetis__MinCover_RowDFS
+#define MinCover feel__libmetis__MinCover
+#define MinCover_Augment feel__libmetis__MinCover_Augment
+#define MinCover_Decompose feel__libmetis__MinCover_Decompose
+#define MinCover_ColDFS feel__libmetis__MinCover_ColDFS
+#define MinCover_RowDFS feel__libmetis__MinCover_RowDFS
/* mmd.c */
-#define genmmd libmetis__genmmd
-#define mmdelm libmetis__mmdelm
-#define mmdint libmetis__mmdint
-#define mmdnum libmetis__mmdnum
-#define mmdupd libmetis__mmdupd
+#define genmmd feel__libmetis__genmmd
+#define mmdelm feel__libmetis__mmdelm
+#define mmdint feel__libmetis__mmdint
+#define mmdnum feel__libmetis__mmdnum
+#define mmdupd feel__libmetis__mmdupd
/* ometis.c */
-#define MlevelNestedDissection libmetis__MlevelNestedDissection
-#define MlevelNestedDissectionCC libmetis__MlevelNestedDissectionCC
-#define MlevelNodeBisectionMultiple libmetis__MlevelNodeBisectionMultiple
-#define MlevelNodeBisectionL2 libmetis__MlevelNodeBisectionL2
-#define MlevelNodeBisectionL1 libmetis__MlevelNodeBisectionL1
-#define SplitGraphOrder libmetis__SplitGraphOrder
-#define SplitGraphOrderCC libmetis__SplitGraphOrderCC
-#define MMDOrder libmetis__MMDOrder
+#define MlevelNestedDissection feel__libmetis__MlevelNestedDissection
+#define MlevelNestedDissectionCC feel__libmetis__MlevelNestedDissectionCC
+#define MlevelNodeBisectionMultiple feel__libmetis__MlevelNodeBisectionMultiple
+#define MlevelNodeBisectionL2 feel__libmetis__MlevelNodeBisectionL2
+#define MlevelNodeBisectionL1 feel__libmetis__MlevelNodeBisectionL1
+#define SplitGraphOrder feel__libmetis__SplitGraphOrder
+#define SplitGraphOrderCC feel__libmetis__SplitGraphOrderCC
+#define MMDOrder feel__libmetis__MMDOrder
/* options.c */
-#define SetupCtrl libmetis__SetupCtrl
-#define SetupKWayBalMultipliers libmetis__SetupKWayBalMultipliers
-#define Setup2WayBalMultipliers libmetis__Setup2WayBalMultipliers
-#define PrintCtrl libmetis__PrintCtrl
-#define FreeCtrl libmetis__FreeCtrl
-#define CheckParams libmetis__CheckParams
+#define SetupCtrl feel__libmetis__SetupCtrl
+#define SetupKWayBalMultipliers feel__libmetis__SetupKWayBalMultipliers
+#define Setup2WayBalMultipliers feel__libmetis__Setup2WayBalMultipliers
+#define PrintCtrl feel__libmetis__PrintCtrl
+#define FreeCtrl feel__libmetis__FreeCtrl
+#define CheckParams feel__libmetis__CheckParams
/* parmetis.c */
-#define MlevelNestedDissectionP libmetis__MlevelNestedDissectionP
-#define FM_2WayNodeRefine1SidedP libmetis__FM_2WayNodeRefine1SidedP
-#define FM_2WayNodeRefine2SidedP libmetis__FM_2WayNodeRefine2SidedP
+#define MlevelNestedDissectionP feel__libmetis__MlevelNestedDissectionP
+#define FM_2WayNodeRefine1SidedP feel__libmetis__FM_2WayNodeRefine1SidedP
+#define FM_2WayNodeRefine2SidedP feel__libmetis__FM_2WayNodeRefine2SidedP
/* pmetis.c */
-#define MlevelRecursiveBisection libmetis__MlevelRecursiveBisection
-#define MultilevelBisect libmetis__MultilevelBisect
-#define SplitGraphPart libmetis__SplitGraphPart
+#define MlevelRecursiveBisection feel__libmetis__MlevelRecursiveBisection
+#define MultilevelBisect feel__libmetis__MultilevelBisect
+#define SplitGraphPart feel__libmetis__SplitGraphPart
/* refine.c */
-#define Refine2Way libmetis__Refine2Way
-#define Allocate2WayPartitionMemory libmetis__Allocate2WayPartitionMemory
-#define Compute2WayPartitionParams libmetis__Compute2WayPartitionParams
-#define Project2WayPartition libmetis__Project2WayPartition
+#define Refine2Way feel__libmetis__Refine2Way
+#define Allocate2WayPartitionMemory feel__libmetis__Allocate2WayPartitionMemory
+#define Compute2WayPartitionParams feel__libmetis__Compute2WayPartitionParams
+#define Project2WayPartition feel__libmetis__Project2WayPartition
/* separator.c */
-#define ConstructSeparator libmetis__ConstructSeparator
-#define ConstructMinCoverSeparator libmetis__ConstructMinCoverSeparator
+#define ConstructSeparator feel__libmetis__ConstructSeparator
+#define ConstructMinCoverSeparator feel__libmetis__ConstructMinCoverSeparator
/* sfm.c */
-#define FM_2WayNodeRefine2Sided libmetis__FM_2WayNodeRefine2Sided
-#define FM_2WayNodeRefine1Sided libmetis__FM_2WayNodeRefine1Sided
-#define FM_2WayNodeBalance libmetis__FM_2WayNodeBalance
+#define FM_2WayNodeRefine2Sided feel__libmetis__FM_2WayNodeRefine2Sided
+#define FM_2WayNodeRefine1Sided feel__libmetis__FM_2WayNodeRefine1Sided
+#define FM_2WayNodeBalance feel__libmetis__FM_2WayNodeBalance
/* srefine.c */
-#define Refine2WayNode libmetis__Refine2WayNode
-#define Allocate2WayNodePartitionMemory libmetis__Allocate2WayNodePartitionMemory
-#define Compute2WayNodePartitionParams libmetis__Compute2WayNodePartitionParams
-#define Project2WayNodePartition libmetis__Project2WayNodePartition
+#define Refine2WayNode feel__libmetis__Refine2WayNode
+#define Allocate2WayNodePartitionMemory feel__libmetis__Allocate2WayNodePartitionMemory
+#define Compute2WayNodePartitionParams feel__libmetis__Compute2WayNodePartitionParams
+#define Project2WayNodePartition feel__libmetis__Project2WayNodePartition
/* stat.c */
-#define ComputePartitionInfoBipartite libmetis__ComputePartitionInfoBipartite
-#define ComputePartitionBalance libmetis__ComputePartitionBalance
-#define ComputeElementBalance libmetis__ComputeElementBalance
+#define ComputePartitionInfoBipartite feel__libmetis__ComputePartitionInfoBipartite
+#define ComputePartitionBalance feel__libmetis__ComputePartitionBalance
+#define ComputeElementBalance feel__libmetis__ComputeElementBalance
/* timing.c */
-#define InitTimers libmetis__InitTimers
-#define PrintTimers libmetis__PrintTimers
+#define InitTimers feel__libmetis__InitTimers
+#define PrintTimers feel__libmetis__PrintTimers
/* util.c */
-#define iargmax_strd libmetis__iargmax_strd
-#define iargmax_nrm libmetis__iargmax_nrm
-#define iargmax2_nrm libmetis__iargmax2_nrm
-#define rargmax2 libmetis__rargmax2
-#define InitRandom libmetis__InitRandom
-#define metis_rcode libmetis__metis_rcode
+#define iargmax_strd feel__libmetis__iargmax_strd
+#define iargmax_nrm feel__libmetis__iargmax_nrm
+#define iargmax2_nrm feel__libmetis__iargmax2_nrm
+#define rargmax2 feel__libmetis__rargmax2
+#define InitRandom feel__libmetis__InitRandom
+#define metis_rcode feel__libmetis__metis_rcode
/* wspace.c */
-#define AllocateWorkSpace libmetis__AllocateWorkSpace
-#define AllocateRefinementWorkSpace libmetis__AllocateRefinementWorkSpace
-#define FreeWorkSpace libmetis__FreeWorkSpace
-#define wspacemalloc libmetis__wspacemalloc
-#define wspacepush libmetis__wspacepush
-#define wspacepop libmetis__wspacepop
-#define iwspacemalloc libmetis__iwspacemalloc
-#define rwspacemalloc libmetis__rwspacemalloc
-#define ikvwspacemalloc libmetis__ikvwspacemalloc
-#define cnbrpoolReset libmetis__cnbrpoolReset
-#define cnbrpoolGetNext libmetis__cnbrpoolGetNext
-#define vnbrpoolReset libmetis__vnbrpoolReset
-#define vnbrpoolGetNext libmetis__vnbrpoolGetNext
+#define AllocateWorkSpace feel__libmetis__AllocateWorkSpace
+#define AllocateRefinementWorkSpace feel__libmetis__AllocateRefinementWorkSpace
+#define FreeWorkSpace feel__libmetis__FreeWorkSpace
+#define wspacemalloc feel__libmetis__wspacemalloc
+#define wspacepush feel__libmetis__wspacepush
+#define wspacepop feel__libmetis__wspacepop
+#define iwspacemalloc feel__libmetis__iwspacemalloc
+#define rwspacemalloc feel__libmetis__rwspacemalloc
+#define ikvwspacemalloc feel__libmetis__ikvwspacemalloc
+#define cnbrpoolReset feel__libmetis__cnbrpoolReset
+#define cnbrpoolGetNext feel__libmetis__cnbrpoolGetNext
+#define vnbrpoolReset feel__libmetis__vnbrpoolReset
+#define vnbrpoolGetNext feel__libmetis__vnbrpoolGetNext
#endif