diff --git a/Makefile b/Makefile index 84050841bff781f0f72822b4758b8cd010dc2006..9e24091264cc02ed06ad9ef342f19292a3b96cda 100644 --- a/Makefile +++ b/Makefile @@ -235,7 +235,8 @@ tags: htags etags: - etags `find . \( -name "*.cpp" -o -name "*.h" -o -name "*.y" -o -name "*.l" \)` + etags `find . \( -name "*.cpp" -o -name "*.c" -o -name "*.h" -o\ + -name "*.y" -o -name "*.l" \)` # Rules to package the sources diff --git a/configure b/configure index 30e2cfe9c261bdeb43a73aad8349e14f0902c349..a0f1b2aa6e87fb2d7ae070ab51af793f3a7e8f9e 100755 --- a/configure +++ b/configure @@ -1274,7 +1274,7 @@ Optional Features: --enable-netgen compile Netgen if available (default=yes) --enable-ann compile ANN if available (default=yes) --enable-metis compile METIS partitioner (default=yes) - --enable-chaco compile Chaco partitioner (default=no) + --enable-chaco compile Chaco partitioner (default=yes) --enable-tetgen compile Tetgen if available (default=yes) --enable-matheval compile MathEval if available (default=yes) --enable-gmm use gmm++ if available (default=yes) @@ -4582,7 +4582,7 @@ _ACEOF fi fi - if test "x$enable_chaco" = "xyes"; then + if test "x$enable_chaco" != "xno"; then { echo "$as_me:$LINENO: checking for ./contrib/Chaco/main/interface.c" >&5 echo $ECHO_N "checking for ./contrib/Chaco/main/interface.c... $ECHO_C" >&6; } if test "${ac_cv_file___contrib_Chaco_main_interface_c+set}" = set; then diff --git a/configure.in b/configure.in index 89667e7f8d75a3f8d8c6e9b280b7a568398cd789..33a246cbf76df166fcf0a7b93d8a73b797dd3bab 100644 --- a/configure.in +++ b/configure.in @@ -102,7 +102,7 @@ AC_ARG_ENABLE(metis, [compile METIS partitioner (default=yes)])) AC_ARG_ENABLE(chaco, AC_HELP_STRING([--enable-chaco], - [compile Chaco partitioner (default=no)])) + [compile Chaco partitioner (default=yes)])) AC_ARG_ENABLE(tetgen, AC_HELP_STRING([--enable-tetgen], [compile Tetgen if available (default=yes)])) @@ -454,7 +454,7 @@ if test "x$enable_contrib" != "xno"; then fi dnl Check for Chaco partitionner - if test "x$enable_chaco" = "xyes"; then + if test "x$enable_chaco" != "xno"; then AC_CHECK_FILE(./contrib/Chaco/main/interface.c,CHACO="yes") if test "x${CHACO}" = "xyes"; then GMSH_DIRS="${GMSH_DIRS} contrib/Chaco" diff --git a/contrib/Chaco/symmlq/symmlq.c b/contrib/Chaco/symmlq/symmlq.c index 1448a0ec00e1951e65dca43be60983b2e28aca87..50ae65f10bc20a9c98c84072693820cf91a01199 100644 --- a/contrib/Chaco/symmlq/symmlq.c +++ b/contrib/Chaco/symmlq/symmlq.c @@ -35,16 +35,16 @@ integer *itnmin; /* Local variables */ static doublereal alfa, diag, dbar, beta, gbar, oldb, epsa; - extern doublereal ddot_(); + extern doublereal ddot_chaco_(); static doublereal gmin, gmax, zbar, epsr, epsx, beta1; - extern doublereal dnrm2_(); + extern doublereal dnrm2_chaco_(); static integer i; static doublereal gamma, s, t, delta, z, denom; extern /* Subroutine */ int aprod_(); static doublereal bstep; - extern /* Subroutine */ int dcopy_(); + extern /* Subroutine */ int dcopy_chaco_(); static doublereal epsln; - extern /* Subroutine */ int daxpy_(); + extern /* Subroutine */ int daxpy_chaco_(); static doublereal tnorm, cs, ynorm2, sn, cgnorm; extern /* Subroutine */ int msolve_(); static doublereal snprod, lqnorm, qrnorm, eps, rhs1, rhs2; @@ -467,7 +467,7 @@ ist ) -rwl*/ /* Subroutines and functions */ /* USER aprod, msolve */ -/* BLAS daxpy, dcopy, ddot , dnrm2 */ +/* BLAS daxpy_chaco, dcopy_chaco, ddot_chaco , dnrm2_chaco */ /* Intrinsics and local variables */ @@ -492,7 +492,7 @@ L10: eps /= 2.; x[1] = eps; y[1] = 1.; - daxpy_(&c__1, &c_b4, &x[1], &c__1, &y[1], &c__1); + daxpy_chaco_(&c__1, &c_b4, &x[1], &c__1, &y[1], &c__1); if (y[1] > 1.) { goto L10; } @@ -519,8 +519,8 @@ L10: /* Set up y for the first Lanczos vector v1. */ /* y is really beta1 * P * v1 where P = C**(-1). */ /* y and beta1 will be zero if b = 0. */ - dcopy_(n, &b[1], &c__1, &y[1], &c__1); - dcopy_(n, &b[1], &c__1, &r1[1], &c__1); + dcopy_chaco_(n, &b[1], &c__1, &y[1], &c__1); + dcopy_chaco_(n, &b[1], &c__1, &r1[1], &c__1); if (*precon) { msolve_(n, &r1[1], &y[1], a, &vwsqrt[1], &work[1]); } @@ -529,12 +529,12 @@ L10: /* else */ /* b1 = zero */ /* end if */ - beta1 = ddot_(n, &r1[1], &c__1, &y[1], &c__1); + beta1 = ddot_chaco_(n, &r1[1], &c__1, &y[1], &c__1); /* See if msolve is symmetric. */ if (*checka && *precon) { msolve_(n, &y[1], &r2[1], a, &vwsqrt[1], &work[1]); - s = ddot_(n, &y[1], &c__1, &y[1], &c__1); - t = ddot_(n, &r1[1], &c__1, &r2[1], &c__1); + s = ddot_chaco_(n, &y[1], &c__1, &y[1], &c__1); + t = ddot_chaco_(n, &r1[1], &c__1, &r2[1], &c__1); z = (d__1 = s - t, abs(d__1)); epsa = (s + eps) * pow_dd(&eps, &c_b18); if (z > epsa) { @@ -563,8 +563,8 @@ L10: aprod_(n, &v[1], &y[1], a, &vwsqrt[1], &work[1], orthlist); if (*checka) { aprod_(n, &y[1], &r2[1], a, &vwsqrt[1], &work[1], orthlist); - s = ddot_(n, &y[1], &c__1, &y[1], &c__1); - t = ddot_(n, &v[1], &c__1, &r2[1], &c__1); + s = ddot_chaco_(n, &y[1], &c__1, &y[1], &c__1); + t = ddot_chaco_(n, &v[1], &c__1, &r2[1], &c__1); z = (d__1 = s - t, abs(d__1)); epsa = (s + eps) * pow_dd(&eps, &c_b18); if (z > epsa) { @@ -576,21 +576,21 @@ L10: /* Again, y is beta * P * v2 where P = C**(-1). */ /* y and beta will be zero or very small if b is an eigenvector. */ d__1 = -(*shift); - daxpy_(n, &d__1, &v[1], &c__1, &y[1], &c__1); - alfa = ddot_(n, &v[1], &c__1, &y[1], &c__1); + daxpy_chaco_(n, &d__1, &v[1], &c__1, &y[1], &c__1); + alfa = ddot_chaco_(n, &v[1], &c__1, &y[1], &c__1); d__1 = -alfa / beta1; - daxpy_(n, &d__1, &r1[1], &c__1, &y[1], &c__1); + daxpy_chaco_(n, &d__1, &r1[1], &c__1, &y[1], &c__1); /* Make sure r2 will be orthogonal to the first v. */ - z = ddot_(n, &v[1], &c__1, &y[1], &c__1); - s = ddot_(n, &v[1], &c__1, &v[1], &c__1); + z = ddot_chaco_(n, &v[1], &c__1, &y[1], &c__1); + s = ddot_chaco_(n, &v[1], &c__1, &v[1], &c__1); d__1 = -z / s; - daxpy_(n, &d__1, &v[1], &c__1, &y[1], &c__1); - dcopy_(n, &y[1], &c__1, &r2[1], &c__1); + daxpy_chaco_(n, &d__1, &v[1], &c__1, &y[1], &c__1); + dcopy_chaco_(n, &y[1], &c__1, &r2[1], &c__1); if (*precon) { msolve_(n, &r2[1], &y[1], a, &vwsqrt[1], &work[1]); } oldb = beta1; - beta = ddot_(n, &r2[1], &c__1, &y[1], &c__1); + beta = ddot_chaco_(n, &r2[1], &c__1, &y[1], &c__1); if (beta < 0.) { *istop = 8; goto L900; @@ -601,9 +601,9 @@ L10: *istop = -1; } /* See if the local reorthogonalization achieved anything. */ - denom = sqrt(s) * dnrm2_(n, &r2[1], &c__1) + eps; + denom = sqrt(s) * dnrm2_chaco_(n, &r2[1], &c__1) + eps; s = z / denom; - t = ddot_(n, &v[1], &c__1, &r2[1], &c__1) / denom; + t = ddot_chaco_(n, &v[1], &c__1, &r2[1], &c__1) / denom; /* if (nout .gt. 0 .and. goodb) then */ /* write(nout, 1100) beta1, alfa, s, t */ /* end if */ @@ -628,7 +628,7 @@ L10: /* L200: */ } } else { - dcopy_(n, &v[1], &c__1, &w[1], &c__1); + dcopy_chaco_(n, &v[1], &c__1, &w[1], &c__1); } /* ------------------------------------------------------------------ */ @@ -746,24 +746,24 @@ L600: } aprod_(n, &v[1], &y[1], a, &vwsqrt[1], &work[1], orthlist); d__1 = -(*shift); - daxpy_(n, &d__1, &v[1], &c__1, &y[1], &c__1); + daxpy_chaco_(n, &d__1, &v[1], &c__1, &y[1], &c__1); d__1 = -beta / oldb; - daxpy_(n, &d__1, &r1[1], &c__1, &y[1], &c__1); - alfa = ddot_(n, &v[1], &c__1, &y[1], &c__1); + daxpy_chaco_(n, &d__1, &r1[1], &c__1, &y[1], &c__1); + alfa = ddot_chaco_(n, &v[1], &c__1, &y[1], &c__1); /* Computing 2nd power */ d__1 = alfa; /* Computing 2nd power */ d__2 = beta; tnorm = tnorm + d__1 * d__1 + d__2 * d__2 * 2.; d__1 = -alfa / beta; - daxpy_(n, &d__1, &r2[1], &c__1, &y[1], &c__1); - dcopy_(n, &r2[1], &c__1, &r1[1], &c__1); - dcopy_(n, &y[1], &c__1, &r2[1], &c__1); + daxpy_chaco_(n, &d__1, &r2[1], &c__1, &y[1], &c__1); + dcopy_chaco_(n, &r2[1], &c__1, &r1[1], &c__1); + dcopy_chaco_(n, &y[1], &c__1, &r2[1], &c__1); if (*precon) { msolve_(n, &r2[1], &y[1], a, &vwsqrt[1], &work[1]); } oldb = beta; - beta = ddot_(n, &r2[1], &c__1, &y[1], &c__1); + beta = ddot_chaco_(n, &r2[1], &c__1, &y[1], &c__1); if (beta < 0.) { *istop = 6; goto L800; @@ -821,18 +821,18 @@ L800: d__1 = zbar; *ynorm = sqrt(ynorm2 + d__1 * d__1); *rnorm = cgnorm; - daxpy_(n, &zbar, &w[1], &c__1, &x[1], &c__1); + daxpy_chaco_(n, &zbar, &w[1], &c__1, &x[1], &c__1); } else { *rnorm = lqnorm; } if (*goodb) { /* Add the step along b. */ bstep /= beta1; - dcopy_(n, &b[1], &c__1, &y[1], &c__1); + dcopy_chaco_(n, &b[1], &c__1, &y[1], &c__1); if (*precon) { msolve_(n, &b[1], &y[1], a, &vwsqrt[1], &work[1]); } - daxpy_(n, &bstep, &y[1], &c__1, &x[1], &c__1); + daxpy_chaco_(n, &bstep, &y[1], &c__1, &x[1], &c__1); } /* ================================================================== */ diff --git a/contrib/Chaco/symmlq/symmlqblas.c b/contrib/Chaco/symmlq/symmlqblas.c index 80fa878979d03a1a6612c97492c656ef823f0dd7..b4f5fea7324f5d31ffd60e163e294322a70e488e 100644 --- a/contrib/Chaco/symmlq/symmlqblas.c +++ b/contrib/Chaco/symmlq/symmlqblas.c @@ -9,14 +9,14 @@ /* symmlqblas fortran */ -/* daxpy dcopy ddot dnrm2 */ +/* daxpy_chaco dcopy_chaco ddot_chaco dnrm2_chaco_chaco */ /* ** from netlib, Thu May 16 21:00:13 EDT 1991 *** */ /* ** Declarations of the form dx(1) changed to dx(*) */ /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ - /* Subroutine */ int daxpy_(n, da, dx, incx, dy, incy) + /* Subroutine */ int daxpy_chaco_(n, da, dx, incx, dy, incy) integer *n; doublereal *da, *dx; integer *incx; @@ -99,10 +99,10 @@ L40: /* L50: */ } return 0; -} /* daxpy_ */ +} /* daxpy_chaco_ */ /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ - /* Subroutine */ int dcopy_(n, dx, incx, dy, incy) + /* Subroutine */ int dcopy_chaco_(n, dx, incx, dy, incy) integer *n; doublereal *dx; integer *incx; @@ -185,10 +185,10 @@ L40: /* L50: */ } return 0; -} /* dcopy_ */ +} /* dcopy_chaco_ */ /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ -doublereal ddot_(n, dx, incx, dy, incy) +doublereal ddot_chaco_(n, dx, incx, dy, incy) integer *n; doublereal *dx; integer *incx; @@ -274,10 +274,10 @@ L40: L60: ret_val = dtemp; return ret_val; -} /* ddot_ */ +} /* ddot_chaco_ */ /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ -doublereal dnrm2_(n, dx, incx) +doublereal dnrm2_chaco_(n, dx, incx) integer *n; doublereal *dx; integer *incx; @@ -473,4 +473,4 @@ L200: ret_val = xmax * sqrt(sum); L300: return ret_val; -} /* dnrm2_ */ +} /* dnrm2_chaco_ */