Allow both METIS 4 and METIS 5 interfaces.

new-parstruct
Salvatore Filippone 6 years ago
parent dbfedeebb5
commit 8bd2610b09

@ -1823,8 +1823,8 @@ fi
if test "x$pac_metis_lib_ok" == "xyes" ; then
AC_MSG_CHECKING([for METIS_SetDefaultOptions in $LIBS])
AC_TRY_LINK_FUNC(METIS_SetDefaultOptions,
[psblas_cv_have_metis=yes;pac_metis_lib_ok=yes; ],
[psblas_cv_have_metis=no;pac_metis_lib_ok="no. Unusable METIS version, sorry."; METIS_LIBS=""])
[psblas_cv_metis_version="5"; ],
[psblas_cv_metis_version="4"; ])
AC_MSG_RESULT($pac_metis_lib_ok)
fi

6
configure vendored

@ -11378,12 +11378,12 @@ $as_echo "$ac_try_echo") >&5
test "$cross_compiling" = yes ||
$as_test_x conftest$ac_exeext
}; then
psblas_cv_have_metis=yes;pac_metis_lib_ok=yes;
psblas_cv_metis_version="5";
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
psblas_cv_have_metis=no;pac_metis_lib_ok="no. Unusable METIS version, sorry."; METIS_LIBS=""
psblas_cv_metis_version="4";
fi
rm -rf conftest.dSYM
@ -11398,7 +11398,7 @@ CPPFLAGS="$SAVE_CPPFLAGS";
if test "x$psblas_cv_have_metis" == "xyes" ; then
FDEFINES="$psblas_cv_define_prepend-DHAVE_METIS $FDEFINES"
CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES"
CDEFINES="-DHAVE_METIS_ -DMETIS_$psblas_cv_metis_version $psblas_cv_metis_includes $CDEFINES"
fi

@ -677,7 +677,7 @@ dnl AC_CHECK_HEADERS([rsb.h], [ LIBS="${LIBS} $want_rsb_libs"], [])
PAC_CHECK_METIS
if test "x$psblas_cv_have_metis" == "xyes" ; then
FDEFINES="$psblas_cv_define_prepend-DHAVE_METIS $FDEFINES"
CDEFINES="-DHAVE_METIS_ $psblas_cv_metis_includes $CDEFINES"
CDEFINES="-DHAVE_METIS_ -DMETIS_$psblas_cv_metis_version $psblas_cv_metis_includes $CDEFINES"
fi
PAC_CHECK_AMD

@ -10,6 +10,7 @@ int metis_PartGraphKway_C(int *n, int *ixadj, int *iadj, int *ivwg,
int *graphpart)
{
int res = -1;
#if defined(METIS_5)
idx_t objval = 0;
idx_t options[METIS_NOPTIONS];
//printf("Inside Metis/C interface\n");
@ -35,6 +36,23 @@ int metis_PartGraphKway_C(int *n, int *ixadj, int *iadj, int *ivwg,
} else {
return res;
}
#elif defined(METIS_4)
idxtype objval = 0;
int options[8];
//printf("Inside Metis/C interface\n");
idxtype ncon=1;
int wflag=0;
int numflag=1;
int ecut;
options[0]=0;
METIS_PartGraphKway((int *)n,(idxtype *)ixadj,(idxtype *)iadj,
NULL,NULL,&wflag,&numflag,nparts,options,
&ecut,(idxtype *)graphpart);
return(0);
#elif
choke on me!
#endif
}

@ -365,9 +365,9 @@ contains
!!$ write(*,*) 'Before allocation',nparts
irpl=irp
jal = ja
nl = n
irpl = irp
jal = ja
nl = n
nptl = nparts
wgh_ = -1.0
if(present(weights)) then

Loading…
Cancel
Save