diff --git a/Makefile.in b/Makefile.in index 35e339e..e0fd41b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -121,6 +121,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -154,6 +161,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -162,6 +171,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -213,6 +224,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -221,6 +233,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/configure b/configure index 0af31ed..dffeb27 100755 --- a/configure +++ b/configure @@ -479,7 +479,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion CGLCONIC_SVN_REV CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC CXXDEFS ADD_CXXFLAGS DBG_CXXFLAGS OPT_CXXFLAGS CXX CXXFLAGS ac_ct_CXX COIN_CXX_IS_CL_TRUE COIN_CXX_IS_CL_FALSE MPICXX EGREP LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS DEPENDENCY_LINKING_TRUE DEPENDENCY_LINKING_FALSE LT_LDFLAGS PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED COINUTILS_LIBS COINUTILS_CFLAGS COINUTILS_DATA COINUTILS_DEPENDENCIES COINUTILS_LIBS_INSTALLED COINUTILS_CFLAGS_INSTALLED COINUTILS_DATA_INSTALLED CGLCONICLIB_CFLAGS CGLCONICLIB_LIBS CGLCONICLIB_PCLIBS CGLCONICLIB_PCREQUIRES CGLCONICLIB_DEPENDENCIES CGLCONICLIB_CFLAGS_INSTALLED CGLCONICLIB_LIBS_INSTALLED COIN_HAS_COINUTILS_TRUE COIN_HAS_COINUTILS_FALSE OSI_LIBS OSI_CFLAGS OSI_DATA OSI_DEPENDENCIES OSI_LIBS_INSTALLED OSI_CFLAGS_INSTALLED OSI_DATA_INSTALLED COIN_HAS_OSI_TRUE COIN_HAS_OSI_FALSE OSICLP_LIBS OSICLP_CFLAGS OSICLP_DATA OSICLP_DEPENDENCIES OSICLP_LIBS_INSTALLED OSICLP_CFLAGS_INSTALLED OSICLP_DATA_INSTALLED COIN_HAS_OSICLP_TRUE COIN_HAS_OSICLP_FALSE CGL_LIBS CGL_CFLAGS CGL_DATA CGL_DEPENDENCIES CGL_LIBS_INSTALLED CGL_CFLAGS_INSTALLED CGL_DATA_INSTALLED COIN_HAS_CGL_TRUE COIN_HAS_CGL_FALSE OSICONIC_LIBS OSICONIC_CFLAGS OSICONIC_DATA OSICONIC_DEPENDENCIES OSICONIC_LIBS_INSTALLED OSICONIC_CFLAGS_INSTALLED OSICONIC_DATA_INSTALLED COIN_HAS_OSICONIC_TRUE COIN_HAS_OSICONIC_FALSE COLA_LIBS COLA_CFLAGS COLA_DATA COLA_DEPENDENCIES COLA_LIBS_INSTALLED COLA_CFLAGS_INSTALLED COLA_DATA_INSTALLED COIN_HAS_COLA_TRUE COIN_HAS_COLA_FALSE OSIIPOPT_LIBS OSIIPOPT_CFLAGS OSIIPOPT_DATA OSIIPOPT_DEPENDENCIES OSIIPOPT_LIBS_INSTALLED OSIIPOPT_CFLAGS_INSTALLED OSIIPOPT_DATA_INSTALLED COIN_HAS_OSIIPOPT_TRUE COIN_HAS_OSIIPOPT_FALSE OSICPLEX_LIBS OSICPLEX_CFLAGS OSICPLEX_DATA OSICPLEX_DEPENDENCIES OSICPLEX_LIBS_INSTALLED OSICPLEX_CFLAGS_INSTALLED OSICPLEX_DATA_INSTALLED COIN_HAS_OSICPLEX_TRUE COIN_HAS_OSICPLEX_FALSE OSIMOSEK_LIBS OSIMOSEK_CFLAGS OSIMOSEK_DATA OSIMOSEK_DEPENDENCIES OSIMOSEK_LIBS_INSTALLED OSIMOSEK_CFLAGS_INSTALLED OSIMOSEK_DATA_INSTALLED COIN_HAS_OSIMOSEK_TRUE COIN_HAS_OSIMOSEK_FALSE IPOPT_IPM_SOLVER_TRUE IPOPT_IPM_SOLVER_FALSE MOSEK_IPM_SOLVER_TRUE MOSEK_IPM_SOLVER_FALSE CPLEX_IPM_SOLVER_TRUE CPLEX_IPM_SOLVER_FALSE SAMPLE_LIBS SAMPLE_CFLAGS SAMPLE_DATA SAMPLE_DEPENDENCIES SAMPLE_LIBS_INSTALLED SAMPLE_CFLAGS_INSTALLED SAMPLE_DATA_INSTALLED COIN_HAS_SAMPLE_TRUE COIN_HAS_SAMPLE_FALSE CGLCONIC_SUBDIRS CGLCONIC_SUBLIBS coin_have_doxygen coin_have_latex coin_doxy_usedot coin_doxy_tagname coin_doxy_logname COIN_HAS_DOXYGEN_TRUE COIN_HAS_DOXYGEN_FALSE COIN_HAS_LATEX_TRUE COIN_HAS_LATEX_FALSE coin_doxy_tagfiles coin_doxy_excludes LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion CGLCONIC_SVN_REV CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC CXXDEFS ADD_CXXFLAGS DBG_CXXFLAGS OPT_CXXFLAGS CXX CXXFLAGS ac_ct_CXX COIN_CXX_IS_CL_TRUE COIN_CXX_IS_CL_FALSE MPICXX EGREP LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS DEPENDENCY_LINKING_TRUE DEPENDENCY_LINKING_FALSE LT_LDFLAGS PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED COINUTILS_LIBS COINUTILS_CFLAGS COINUTILS_DATA COINUTILS_DEPENDENCIES COINUTILS_LIBS_INSTALLED COINUTILS_CFLAGS_INSTALLED COINUTILS_DATA_INSTALLED CGLCONICLIB_CFLAGS CGLCONICLIB_LIBS CGLCONICLIB_PCLIBS CGLCONICLIB_PCREQUIRES CGLCONICLIB_DEPENDENCIES CGLCONICLIB_CFLAGS_INSTALLED CGLCONICLIB_LIBS_INSTALLED COIN_HAS_COINUTILS_TRUE COIN_HAS_COINUTILS_FALSE OSI_LIBS OSI_CFLAGS OSI_DATA OSI_DEPENDENCIES OSI_LIBS_INSTALLED OSI_CFLAGS_INSTALLED OSI_DATA_INSTALLED COIN_HAS_OSI_TRUE COIN_HAS_OSI_FALSE OSICLP_LIBS OSICLP_CFLAGS OSICLP_DATA OSICLP_DEPENDENCIES OSICLP_LIBS_INSTALLED OSICLP_CFLAGS_INSTALLED OSICLP_DATA_INSTALLED COIN_HAS_OSICLP_TRUE COIN_HAS_OSICLP_FALSE CGL_LIBS CGL_CFLAGS CGL_DATA CGL_DEPENDENCIES CGL_LIBS_INSTALLED CGL_CFLAGS_INSTALLED CGL_DATA_INSTALLED COIN_HAS_CGL_TRUE COIN_HAS_CGL_FALSE OSICONIC_LIBS OSICONIC_CFLAGS OSICONIC_DATA OSICONIC_DEPENDENCIES OSICONIC_LIBS_INSTALLED OSICONIC_CFLAGS_INSTALLED OSICONIC_DATA_INSTALLED COIN_HAS_OSICONIC_TRUE COIN_HAS_OSICONIC_FALSE COLA_LIBS COLA_CFLAGS COLA_DATA COLA_DEPENDENCIES COLA_LIBS_INSTALLED COLA_CFLAGS_INSTALLED COLA_DATA_INSTALLED COIN_HAS_COLA_TRUE COIN_HAS_COLA_FALSE OSIIPOPT_LIBS OSIIPOPT_CFLAGS OSIIPOPT_DATA OSIIPOPT_DEPENDENCIES OSIIPOPT_LIBS_INSTALLED OSIIPOPT_CFLAGS_INSTALLED OSIIPOPT_DATA_INSTALLED COIN_HAS_OSIIPOPT_TRUE COIN_HAS_OSIIPOPT_FALSE OSICPLEX_LIBS OSICPLEX_CFLAGS OSICPLEX_DATA OSICPLEX_DEPENDENCIES OSICPLEX_LIBS_INSTALLED OSICPLEX_CFLAGS_INSTALLED OSICPLEX_DATA_INSTALLED COIN_HAS_OSICPLEX_TRUE COIN_HAS_OSICPLEX_FALSE OSIMOSEK_LIBS OSIMOSEK_CFLAGS OSIMOSEK_DATA OSIMOSEK_DEPENDENCIES OSIMOSEK_LIBS_INSTALLED OSIMOSEK_CFLAGS_INSTALLED OSIMOSEK_DATA_INSTALLED COIN_HAS_OSIMOSEK_TRUE COIN_HAS_OSIMOSEK_FALSE IPOPT_IPM_SOLVER_TRUE IPOPT_IPM_SOLVER_FALSE MOSEK_IPM_SOLVER_TRUE MOSEK_IPM_SOLVER_FALSE CPLEX_IPM_SOLVER_TRUE CPLEX_IPM_SOLVER_FALSE SAMPLE_LIBS SAMPLE_CFLAGS SAMPLE_DATA SAMPLE_DEPENDENCIES SAMPLE_LIBS_INSTALLED SAMPLE_CFLAGS_INSTALLED SAMPLE_DATA_INSTALLED COIN_HAS_SAMPLE_TRUE COIN_HAS_SAMPLE_FALSE FLIBS BLAS_LIBS BLAS_CFLAGS BLAS_DATA BLAS_DEPENDENCIES BLAS_LIBS_INSTALLED BLAS_CFLAGS_INSTALLED BLAS_DATA_INSTALLED COIN_HAS_BLAS_TRUE COIN_HAS_BLAS_FALSE LAPACK_LIBS LAPACK_CFLAGS LAPACK_DATA LAPACK_DEPENDENCIES LAPACK_LIBS_INSTALLED LAPACK_CFLAGS_INSTALLED LAPACK_DATA_INSTALLED COIN_HAS_LAPACK_TRUE COIN_HAS_LAPACK_FALSE CGLCONIC_SUBDIRS CGLCONIC_SUBLIBS coin_have_doxygen coin_have_latex coin_doxy_usedot coin_doxy_tagname coin_doxy_logname COIN_HAS_DOXYGEN_TRUE COIN_HAS_DOXYGEN_FALSE COIN_HAS_LATEX_TRUE COIN_HAS_LATEX_FALSE coin_doxy_tagfiles coin_doxy_excludes LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1165,6 +1165,16 @@ Optional Packages: --with-sample-lib linker flags for using package Sample --with-sample-incdir directory with header files for using package Sample --with-sample-datadir directory with data files for using package Sample + --with-blas specify BLAS library (or BUILD to enforce use of + ThirdParty/Blas) + --with-blas-lib linker flags for using package Blas + --with-blas-incdir directory with header files for using package Blas + --with-blas-datadir directory with data files for using package Blas + --with-lapack specify LAPACK library (or BUILD to enforce use of + ThirdParty/Lapack) + --with-lapack-lib linker flags for using package Lapack + --with-lapack-incdir directory with header files for using package Lapack + --with-lapack-datadir directory with data files for using package Lapack --with-dot use dot (from graphviz) when creating documentation with doxygen if available; --without-dot to disable @@ -5296,12 +5306,7 @@ if test x$prefix = xNONE; then else full_prefix=$prefix fi -# Check whether the path given is absolute. -# If not, get absolute path -case $full_prefix in - \\/$* | ?:\\/* | NONE | '' ) ;; - *) full_prefix=`cd $full_prefix ; pwd` ;; -esac +full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib @@ -5876,7 +5881,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5879 "configure"' > conftest.$ac_ext + echo '#line 5884 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7010,7 +7015,7 @@ fi # Provide some information about the compiler. -echo "$as_me:7013:" \ +echo "$as_me:7018:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 @@ -8077,11 +8082,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8080: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8085: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8084: \$? = $ac_status" >&5 + echo "$as_me:8089: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8345,11 +8350,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8348: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8353: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8352: \$? = $ac_status" >&5 + echo "$as_me:8357: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8449,11 +8454,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8452: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8457: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8456: \$? = $ac_status" >&5 + echo "$as_me:8461: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10794,7 +10799,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5) + (eval echo "\"\$as_me:13246: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:13245: \$? = $ac_status" >&5 + echo "$as_me:13250: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -13342,11 +13347,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13345: $lt_compile\"" >&5) + (eval echo "\"\$as_me:13350: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:13349: \$? = $ac_status" >&5 + echo "$as_me:13354: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14912,11 +14917,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14915: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14920: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14919: \$? = $ac_status" >&5 + echo "$as_me:14924: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -15016,11 +15021,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15019: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15024: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:15023: \$? = $ac_status" >&5 + echo "$as_me:15028: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -17223,11 +17228,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17226: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17231: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17230: \$? = $ac_status" >&5 + echo "$as_me:17235: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17491,11 +17496,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17494: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17499: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:17498: \$? = $ac_status" >&5 + echo "$as_me:17503: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -17595,11 +17600,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:17598: $lt_compile\"" >&5) + (eval echo "\"\$as_me:17603: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:17602: \$? = $ac_status" >&5 + echo "$as_me:17607: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -25958,21 +25963,299 @@ fi -#AC_COIN_CHECK_PACKAGE_BLAS(CglConicLib) -#AC_COIN_CHECK_PACKAGE_LAPACK(CglConicLib) +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +echo "$as_me:$LINENO: checking how to get verbose linking output from $F77" >&5 +echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 +if test "${ac_cv_prog_f77_v+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + program main -############################################################################# -# Solvers for unittesting # -############################################################################# + end +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_f77_v= +# Try some options frequently used verbose output +for ac_verb in -v -verbose --verbose -V -\#\#\#; do + cat >conftest.$ac_ext <<_ACEOF + program main -# These are not really required for the compilation of Cgl, but we -# need to know which are available in order to compile the unitTest -# correctly. + end +_ACEOF +# Compile and link our simple test program by passing a flag (argument +# 1 to this macro) to the Fortran compiler in order to get +# "verbose" output that we can then parse for the Fortran linker +# flags. +ac_save_FFLAGS=$FFLAGS +FFLAGS="$FFLAGS $ac_verb" +(eval echo $as_me:26017: \"$ac_link\") >&5 +ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` +echo "$ac_f77_v_output" >&5 +FFLAGS=$ac_save_FFLAGS -############################################################################# -# System header # -############################################################################# +rm -f conftest* + +# On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where +# /foo, /bar, and /baz are search directories for the Fortran linker. +# Here, we change these into -L/foo -L/bar -L/baz (and put it first): +ac_f77_v_output="`echo $ac_f77_v_output | + grep 'LPATH is:' | + sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" + +case $ac_f77_v_output in + # If we are using xlf then replace all the commas with spaces. + *xlfentry*) + ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; + + # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted + # $LIBS confuse us, and the libraries appear later in the output anyway). + *mGLOB_options_string*) + ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; + + # If we are using Cray Fortran then delete quotes. + # Use "\"" instead of '"' for font-lock-mode. + # FIXME: a more general fix for quoted arguments with spaces? + *cft90*) + ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; +esac + + + # look for -l* and *.a constructs in the output + for ac_arg in $ac_f77_v_output; do + case $ac_arg in + [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) + ac_cv_prog_f77_v=$ac_verb + break 2 ;; + esac + done +done +if test -z "$ac_cv_prog_f77_v"; then + { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $F77" >&5 +echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ echo "$as_me:$LINENO: WARNING: compilation failed" >&5 +echo "$as_me: WARNING: compilation failed" >&2;} +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_f77_v" >&5 +echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 +echo "$as_me:$LINENO: checking for Fortran libraries of $F77" >&5 +echo $ECHO_N "checking for Fortran libraries of $F77... $ECHO_C" >&6 +if test "${ac_cv_f77_libs+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$FLIBS" != "x"; then + ac_cv_f77_libs="$FLIBS" # Let the user override the test. +else + +cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF + +# Compile and link our simple test program by passing a flag (argument +# 1 to this macro) to the Fortran compiler in order to get +# "verbose" output that we can then parse for the Fortran linker +# flags. +ac_save_FFLAGS=$FFLAGS +FFLAGS="$FFLAGS $ac_cv_prog_f77_v" +(eval echo $as_me:26095: \"$ac_link\") >&5 +ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` +echo "$ac_f77_v_output" >&5 +FFLAGS=$ac_save_FFLAGS + +rm -f conftest* + +# On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where +# /foo, /bar, and /baz are search directories for the Fortran linker. +# Here, we change these into -L/foo -L/bar -L/baz (and put it first): +ac_f77_v_output="`echo $ac_f77_v_output | + grep 'LPATH is:' | + sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" + +case $ac_f77_v_output in + # If we are using xlf then replace all the commas with spaces. + *xlfentry*) + ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; + + # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted + # $LIBS confuse us, and the libraries appear later in the output anyway). + *mGLOB_options_string*) + ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; + + # If we are using Cray Fortran then delete quotes. + # Use "\"" instead of '"' for font-lock-mode. + # FIXME: a more general fix for quoted arguments with spaces? + *cft90*) + ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; +esac + + + +ac_cv_f77_libs= + +# Save positional arguments (if any) +ac_save_positional="$@" + +set X $ac_f77_v_output +while test $# != 1; do + shift + ac_arg=$1 + case $ac_arg in + [\\/]*.a | ?:[\\/]*.a) + ac_exists=false + for ac_i in $ac_cv_f77_libs; do + if test x"$ac_arg" = x"$ac_i"; then + ac_exists=true + break + fi + done + + if test x"$ac_exists" = xtrue; then + : +else + ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" +fi + + ;; + -bI:*) + ac_exists=false + for ac_i in $ac_cv_f77_libs; do + if test x"$ac_arg" = x"$ac_i"; then + ac_exists=true + break + fi + done + + if test x"$ac_exists" = xtrue; then + : +else + if test "$ac_compiler_gnu" = yes; then + for ac_link_opt in $ac_arg; do + ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" + done +else + ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" +fi +fi + + ;; + # Ignore these flags. + -lang* | -lcrt[01].o | -lcrtbegin.o | -lc | -lgcc | -libmil | -LANG:=*) + ;; + -lkernel32) + test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" + ;; + -[LRuY]) + # These flags, when seen by themselves, take an argument. + # We remove the space between option and argument and re-iterate + # unless we find an empty arg or a new option (starting with -) + case $2 in + "" | -*);; + *) + ac_arg="$ac_arg$2" + shift; shift + set X $ac_arg "$@" + ;; + esac + ;; + -YP,*) + for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do + ac_exists=false + for ac_i in $ac_cv_f77_libs; do + if test x"$ac_j" = x"$ac_i"; then + ac_exists=true + break + fi + done + + if test x"$ac_exists" = xtrue; then + : +else + ac_arg="$ac_arg $ac_j" + ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" +fi + + done + ;; + -[lLR]*) + ac_exists=false + for ac_i in $ac_cv_f77_libs; do + if test x"$ac_arg" = x"$ac_i"; then + ac_exists=true + break + fi + done + + if test x"$ac_exists" = xtrue; then + : +else + ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" +fi + + ;; + # Ignore everything else. + esac +done +# restore positional arguments +set X $ac_save_positional; shift + +# We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, +# then we insist that the "run path" must be an absolute path (i.e. it +# must begin with a "/"). +case `(uname -sr) 2>/dev/null` in + "SunOS 5"*) + ac_ld_run_path=`echo $ac_f77_v_output | + sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` + test "x$ac_ld_run_path" != x && + if test "$ac_compiler_gnu" = yes; then + for ac_link_opt in $ac_ld_run_path; do + ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" + done +else + ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" +fi + ;; +esac +fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" + +fi +echo "$as_me:$LINENO: result: $ac_cv_f77_libs" >&5 +echo "${ECHO_T}$ac_cv_f77_libs" >&6 +FLIBS="$ac_cv_f77_libs" ac_ext=cc @@ -25981,112 +26264,7111 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -#if test x"" = x; then -# hdr="#include " -#else -# hdr="" -#fi -#AC_CHECK_HEADERS([cmath],[],[],[$hdr]) +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu -for ac_header in cmath -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then +echo "$as_me:$LINENO: checking for dummy main to link with Fortran libraries" >&5 +echo $ECHO_N "checking for dummy main to link with Fortran libraries... $ECHO_C" >&6 +if test "${ac_cv_f77_dummy_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF + ac_f77_dm_save_LIBS=$LIBS + LIBS="$LIBS $FLIBS" + ac_fortran_dm_var=F77_DUMMY_MAIN + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + # First, try linking without a dummy main: + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + + ; + return 0; +} _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -z "$ac_cxx_werror_flag" + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - ac_header_compiler=yes + ac_cv_fortran_dummy_main=none else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no +ac_cv_fortran_dummy_main=unknown fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF + if test $ac_cv_fortran_dummy_main = unknown; then + for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <$ac_header> +#define $ac_fortran_dm_var $ac_func +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + + ; + return 0; +} _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_fortran_dummy_main=$ac_func; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_header_preproc=no fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + fi + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main + rm -f conftest* + LIBS=$ac_f77_dm_save_LIBS -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in +fi +echo "$as_me:$LINENO: result: $ac_cv_f77_dummy_main" >&5 +echo "${ECHO_T}$ac_cv_f77_dummy_main" >&6 +F77_DUMMY_MAIN=$ac_cv_f77_dummy_main +if test "$F77_DUMMY_MAIN" != unknown; then + if test $F77_DUMMY_MAIN != none; then + +cat >>confdefs.h <<_ACEOF +#define F77_DUMMY_MAIN $F77_DUMMY_MAIN +_ACEOF + + if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then + +cat >>confdefs.h <<\_ACEOF +#define FC_DUMMY_MAIN_EQ_F77 1 +_ACEOF + + fi +fi +else + { { echo "$as_me:$LINENO: error: linking to Fortran libraries from C fails +See \`config.log' for more details." >&5 +echo "$as_me: error: linking to Fortran libraries from C fails +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 +echo $ECHO_N "checking for Fortran name-mangling scheme... $ECHO_C" >&6 +if test "${ac_cv_f77_mangling+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + subroutine foobar() + return + end + subroutine foo_bar() + return + end +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_f77_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + mv conftest.$ac_objext cfortran_test.$ac_objext + + ac_save_LIBS=$LIBS + LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_success=no + for ac_foobar in foobar FOOBAR; do + for ac_underscore in "" "_"; do + ac_func="$ac_foobar$ac_underscore" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_success=yes; break 2 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + done + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + + if test "$ac_success" = "yes"; then + case $ac_foobar in + foobar) + ac_case=lower + ac_foo_bar=foo_bar + ;; + FOOBAR) + ac_case=upper + ac_foo_bar=FOO_BAR + ;; + esac + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_success_extra=no + for ac_extra in "" "_"; do + ac_func="$ac_foo_bar$ac_underscore$ac_extra" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_success_extra=yes; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + + if test "$ac_success_extra" = "yes"; then + ac_cv_f77_mangling="$ac_case case" + if test -z "$ac_underscore"; then + ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" + else + ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" + fi + if test -z "$ac_extra"; then + ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" + else + ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" + fi + else + ac_cv_f77_mangling="unknown" + fi + else + ac_cv_f77_mangling="unknown" + fi + + LIBS=$ac_save_LIBS + rm -f cfortran_test* conftest* +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compile a simple Fortran program +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compile a simple Fortran program +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +echo "$as_me:$LINENO: result: $ac_cv_f77_mangling" >&5 +echo "${ECHO_T}$ac_cv_f77_mangling" >&6 + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + +# Check whether --with-blas or --without-blas was given. +if test "${with_blas+set}" = set; then + withval="$with_blas" + use_blas="$withval" +else + use_blas= +fi; + +# if user specified --with-blas-lib, then we should give COIN_CHECK_PACKAGE +# preference + +# Check whether --with-blas-lib or --without-blas-lib was given. +if test "${with_blas_lib+set}" = set; then + withval="$with_blas_lib" + use_blas=BUILD +fi; + +# Check if user supplied option makes sense +if test x"$use_blas" != x; then + if test "$use_blas" = "BUILD"; then + # we come to this later + : + elif test "$use_blas" != "no"; then + coin_save_LIBS="$LIBS" + LIBS="$use_blas $LIBS" + if test "$F77" != unavailable ; then + coin_need_flibs=no + echo "$as_me:$LINENO: checking whether user supplied BLASLIB=\"$use_blas\" works" >&5 +echo $ECHO_N "checking whether user supplied BLASLIB=\"$use_blas\" works... $ECHO_C" >&6 + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + call daxpy + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 +echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 +echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 +echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} + { (exit 1); exit 1; }; } + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 +echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 +echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} + { (exit 1); exit 1; }; } + fi + fi + ;; +esac + + use_blas="$use_blas $FLIBS" + else + { echo "$as_me:$LINENO: checking whether user supplied BLASLIB=\"$use_blas\" works with C linkage" >&5 +echo "$as_me: checking whether user supplied BLASLIB=\"$use_blas\" works with C linkage" >&6;} + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + echo "$as_me:$LINENO: checking for daxpy" >&5 +echo $ECHO_N "checking for daxpy... $ECHO_C" >&6 +if test "${ac_cv_func_daxpy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define daxpy to an innocuous variant, in case declares daxpy. + For example, HP-UX 11i declares gettimeofday. */ +#define daxpy innocuous_daxpy + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char daxpy (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef daxpy + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char daxpy (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_daxpy) || defined (__stub___daxpy) +choke me +#else +char (*f) () = daxpy; +#endif +#ifdef __cplusplus +} +#endif + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +return f != daxpy; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_daxpy=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_daxpy=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_daxpy" >&5 +echo "${ECHO_T}$ac_cv_func_daxpy" >&6 +if test $ac_cv_func_daxpy = yes; then + : +else + { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 +echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi + + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + fi + LIBS="$coin_save_LIBS" + fi +else +# Try to autodetect the library for blas based on build system + #AC_MSG_CHECKING([default locations for BLAS]) + case $build in + *-sgi-*) + echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has BLAS" >&5 +echo $ECHO_N "checking whether -lcomplib.sgimath has BLAS... $ECHO_C" >&6 + coin_need_flibs=no + coin_save_LIBS="$LIBS" + LIBS="-lcomplib.sgimath $LIBS" + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call daxpy + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_blas="-lcomplib.sgimath" + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas="-lcomplib.sgimath" + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas="-lcomplib.sgimath" + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas="-lcomplib.sgimath" + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas="-lcomplib.sgimath" + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + LIBS="$coin_save_LIBS" + ;; + +# Ideally, we'd use -library=sunperf, but it's an imperfect world. Studio +# cc doesn't recognise -library, it wants -xlic_lib. Studio 12 CC doesn't +# recognise -xlic_lib. Libtool doesn't like -xlic_lib anyway. Sun claims +# that CC and cc will understand -library in Studio 13. The main extra +# function of -xlic_lib and -library is to arrange for the Fortran run-time +# libraries to be linked for C++ and C. We can arrange that explicitly. + *-*-solaris*) + echo "$as_me:$LINENO: checking for BLAS in libsunperf" >&5 +echo $ECHO_N "checking for BLAS in libsunperf... $ECHO_C" >&6 + coin_need_flibs=no + coin_save_LIBS="$LIBS" + LIBS="-lsunperf $FLIBS $LIBS" + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call daxpy + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_blas='-lsunperf' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='-lsunperf' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='-lsunperf' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='-lsunperf' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='-lsunperf' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + LIBS="$coin_save_LIBS" + ;; + + *-cygwin* | *-mingw*) + case "$CC" in + clang* ) ;; + cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) + coin_save_LIBS="$LIBS" + LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS" + if test "$F77" != unavailable ; then + echo "$as_me:$LINENO: checking for BLAS in MKL (32bit)" >&5 +echo $ECHO_N "checking for BLAS in MKL (32bit)... $ECHO_C" >&6 + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call daxpy + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + else + { echo "$as_me:$LINENO: for BLAS in MKL (32bit) using C linkage" >&5 +echo "$as_me: for BLAS in MKL (32bit) using C linkage" >&6;} + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + echo "$as_me:$LINENO: checking for daxpy" >&5 +echo $ECHO_N "checking for daxpy... $ECHO_C" >&6 +if test "${ac_cv_func_daxpy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define daxpy to an innocuous variant, in case declares daxpy. + For example, HP-UX 11i declares gettimeofday. */ +#define daxpy innocuous_daxpy + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char daxpy (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef daxpy + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char daxpy (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_daxpy) || defined (__stub___daxpy) +choke me +#else +char (*f) () = daxpy; +#endif +#ifdef __cplusplus +} +#endif + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +return f != daxpy; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_daxpy=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_daxpy=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_daxpy" >&5 +echo "${ECHO_T}$ac_cv_func_daxpy" >&6 +if test $ac_cv_func_daxpy = yes; then + use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' +fi + + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + fi + LIBS="$coin_save_LIBS" + + if test "x$use_blas" = x ; then + LIBS="mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib $LIBS" + if test "$F77" != unavailable ; then + echo "$as_me:$LINENO: checking for BLAS in MKL (64bit)" >&5 +echo $ECHO_N "checking for BLAS in MKL (64bit)... $ECHO_C" >&6 + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call daxpy + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + else + { echo "$as_me:$LINENO: for BLAS in MKL (64bit) using C linkage" >&5 +echo "$as_me: for BLAS in MKL (64bit) using C linkage" >&6;} + # unset cached outcome of test with 32bit MKL + unset ac_cv_func_daxpy + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + echo "$as_me:$LINENO: checking for daxpy" >&5 +echo $ECHO_N "checking for daxpy... $ECHO_C" >&6 +if test "${ac_cv_func_daxpy+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define daxpy to an innocuous variant, in case declares daxpy. + For example, HP-UX 11i declares gettimeofday. */ +#define daxpy innocuous_daxpy + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char daxpy (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef daxpy + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char daxpy (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_daxpy) || defined (__stub___daxpy) +choke me +#else +char (*f) () = daxpy; +#endif +#ifdef __cplusplus +} +#endif + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +return f != daxpy; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_daxpy=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_daxpy=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_daxpy" >&5 +echo "${ECHO_T}$ac_cv_func_daxpy" >&6 +if test $ac_cv_func_daxpy = yes; then + use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' +fi + + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + fi + LIBS="$coin_save_LIBS" + fi + ;; + esac + ;; + + *-darwin*) + echo "$as_me:$LINENO: checking for BLAS in Veclib" >&5 +echo $ECHO_N "checking for BLAS in Veclib... $ECHO_C" >&6 + coin_need_flibs=no + coin_save_LIBS="$LIBS" + LIBS="-framework Accelerate $LIBS" + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call daxpy + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_blas='-framework Accelerate' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='-framework Accelerate' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='-framework Accelerate' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='-framework Accelerate' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='-framework Accelerate' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + LIBS="$coin_save_LIBS" + ;; + esac + + if test -z "$use_blas" ; then + echo "$as_me:$LINENO: checking whether -lblas has BLAS" >&5 +echo $ECHO_N "checking whether -lblas has BLAS... $ECHO_C" >&6 + coin_need_flibs=no + coin_save_LIBS="$LIBS" + LIBS="-lblas $LIBS" + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call daxpy + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_blas='-lblas' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='-lblas' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdaxpy(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='-lblas' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DAXPY" ;; + lower*) ac_val="daxpy" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdaxpy="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_blas='-lblas' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdaxpy();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdaxpy() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_blas='-lblas' + if test $coin_need_flibs = yes ; then + use_blas="$use_blas $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_blas" >&5 +echo "${ECHO_T}yes: $use_blas" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + LIBS="$coin_save_LIBS" + fi + + # If we have no other ideas, consider building BLAS. + if test -z "$use_blas" ; then + use_blas=BUILD + fi +fi + +if test "x$use_blas" = xBUILD ; then + +echo "$as_me:$LINENO: checking for COIN-OR package Blas" >&5 +echo $ECHO_N "checking for COIN-OR package Blas... $ECHO_C" >&6 + +coin_has_blas=notGiven + +# check if user wants to skip package in any case +if test x"$COIN_SKIP_PROJECTS" != x; then + for dir in $COIN_SKIP_PROJECTS; do + if test $dir = "Blas"; then + coin_has_blas=skipping + fi + done +fi + +if test "$coin_has_blas" != skipping; then + +# Check whether --with-m4_tolower(Blas) or --without-m4_tolower(Blas) was given. +if test "${with_blas+set}" = set; then + withval="$with_blas" + if test "$withval" = no ; then + coin_has_blas=skipping + fi + +fi; +fi + +BLAS_LIBS= +BLAS_CFLAGS= +BLAS_DATA= +BLAS_DEPENDENCIES= +BLAS_PCLIBS= +BLAS_PCREQUIRES= + + + + + + + + + + + + + + + + + +#check if user provided LIBS, CFLAGS, or DATA for package or disables use of package +if test $coin_has_blas != skipping; then + +# Check whether --with-m4_tolower(Blas)-lib or --without-m4_tolower(Blas)-lib was given. +if test "${with_blas_lib+set}" = set; then + withval="$with_blas_lib" + if test "$withval" = no ; then + coin_has_blas=skipping + else + coin_has_blas=yes + BLAS_LIBS="$withval" + BLAS_PCLIBS="$withval" + + CGLCONICLIB_PCLIBS="$withval $CGLCONICLIB_PCLIBS" + CGLCONICLIB_LIBS="$withval $CGLCONICLIB_LIBS" + + # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables + if test -z "$PKG_CONFIG" ; then + BLAS_LIBS_INSTALLED="$withval" + CGLCONICLIB_LIBS_INSTALLED="$withval $CGLCONICLIB_LIBS_INSTALLED" + fi + fi + +fi; +fi + +if test $coin_has_blas != skipping; then + +# Check whether --with-m4_tolower(Blas)-incdir or --without-m4_tolower(Blas)-incdir was given. +if test "${with_blas_incdir+set}" = set; then + withval="$with_blas_incdir" + if test "$withval" = no ; then + coin_has_blas=skipping + else + coin_has_blas=yes + BLAS_CFLAGS="-I`${CYGPATH_W} $withval`" + CGLCONICLIB_CFLAGS="-I`${CYGPATH_W} $withval` $CGLCONICLIB_CFLAGS" + # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables + if test -z "$PKG_CONFIG" ; then + BLAS_CFLAGS_INSTALLED="$BLAS_CFLAGS" + CGLCONICLIB_CFLAGS_INSTALLED="$BLAS_CFLAGS $CGLCONICLIB_CFLAGS_INSTALLED" + fi + fi + +fi; +fi + +if test $coin_has_blas != skipping; then + +# Check whether --with-m4_tolower(Blas)-datadir or --without-m4_tolower(Blas)-datadir was given. +if test "${with_blas_datadir+set}" = set; then + withval="$with_blas_datadir" + if test "$withval" = no ; then + coin_has_blas=skipping + else + coin_has_blas=yes + BLAS_DATA="$withval" + # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables + if test -z "$PKG_CONFIG" ; then + BLAS_DATA_INSTALLED="$withval" + fi + fi + +fi; +fi + +if test $coin_has_blas = notGiven; then + if test -n "$PKG_CONFIG" ; then + # set search path for pkg-config + # need to export variable to be sure that the following pkg-config gets these values + coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" + PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" + export PKG_CONFIG_PATH + + # let pkg-config do it's magic + + + +if test -n "$PKG_CONFIG" ; then + if $PKG_CONFIG --exists "coinblas"; then + BLAS_VERSIONS=`$PKG_CONFIG --modversion "coinblas" 2>/dev/null | tr '\n' ' '` + cflags=`$PKG_CONFIG --cflags "coinblas" 2>/dev/null` + # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files + # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's + # but only do this if is not trivial + if test "$CYGPATH_W" != "echo" ; then + # need to put into brackets since otherwise autoconf replaces the brackets in the sed command + cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` + fi + BLAS_CFLAGS="$cflags" + BLAS_LIBS=`$PKG_CONFIG --libs "coinblas" 2>/dev/null` + BLAS_DATA=`$PKG_CONFIG --variable=datadir "coinblas" 2>/dev/null` + coin_has_blas=yes + echo "$as_me:$LINENO: result: yes: $BLAS_VERSIONS" >&5 +echo "${ECHO_T}yes: $BLAS_VERSIONS" >&6 + + # adjust linker flags for (i)cl compiler + # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) + if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; + then + BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` + fi + BLAS_PCREQUIRES="coinblas" + + # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in CglConicLib + + CGLCONICLIB_PCREQUIRES="coinblas $CGLCONICLIB_PCREQUIRES" + CGLCONICLIB_CFLAGS="$BLAS_CFLAGS $CGLCONICLIB_CFLAGS" + CGLCONICLIB_LIBS="$BLAS_LIBS $CGLCONICLIB_LIBS" + + + + else + BLAS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinblas"` + coin_has_blas=notGiven + echo "$as_me:$LINENO: result: not given: $BLAS_PKG_ERRORS" >&5 +echo "${ECHO_T}not given: $BLAS_PKG_ERRORS" >&6 + + fi +else + { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Blas without pkg-config\"" >&5 +echo "$as_me: error: \"Cannot check for existance of module Blas without pkg-config\"" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + # reset PKG_CONFIG_PATH variable + PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" + export PKG_CONFIG_PATH + + else + echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 +echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 + +echo "$as_me:$LINENO: checking for COIN-OR package Blas (fallback)" >&5 +echo $ECHO_N "checking for COIN-OR package Blas (fallback)... $ECHO_C" >&6 + +coin_has_blas=notGiven +BLAS_LIBS= +BLAS_LIBS_INSTALLED= +BLAS_CFLAGS= +BLAS_CFLAGS_INSTALLED= +BLAS_DATA= +BLAS_DATA_INSTALLED= +BLAS_PCLIBS= +BLAS_PCREQUIRES= + +# initial list of dependencies is "coinblas", but we need to filter out version number specifications (= x, <= x, >= x, != x) +projtoprocess="coinblas" + +# we first expand the list of projects to process by adding all dependencies just behind the project which depends on it +# further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards +# the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples +# also, we setup the DATA variable +allproj="" +allpcfiles="" +allpcifiles="" +while test "x$projtoprocess" != x ; do + + for proj in $projtoprocess ; do + # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it + pcfile="" + save_IFS="$IFS" + IFS=":" + for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do + # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again + if test -r "$dir/${proj}-uninstalled.pc" ; then + pcfile="$dir/$proj-uninstalled.pc" + if test -r "$dir/${proj}.pc" ; then + pcifile="$dir/${proj}.pc" + else + { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 +echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} + pcifile= + fi + break + fi + done + IFS="$save_IFS" + + if test "x$pcfile" != x ; then + # read dependencies from $pcfile and filter it + projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` + + # add projrequires to the front of the list of projects that have to be processed next + # at the same time, remove $proj from this list + projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` + + # read DATA from $pcfile, if _DATA is still empty + if test "x$BLAS_DATA" = x ; then + projdatadir= + pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` + eval `sh -c "$pcfilemod"` + BLAS_DATA="$projdatadir" + fi + + allproj="$allproj $proj" + allpcfiles="$pcfile:$allpcfiles" + + else + echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 +echo "${ECHO_T}no, dependency $proj not available" >&6 + allproj=fail + break 2 + fi + + if test "x$pcifile" != x ; then + allpcifiles="$pcifile:$allpcifiles" + + # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty + if test "x$BLAS_DATA_INSTALLED" = x ; then + projdatadir= + pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` + eval `sh -c "$pcifilemod"` + if test "${CYGPATH_W}" != "echo"; then + projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" + fi + BLAS_DATA_INSTALLED="$projdatadir" + fi + + fi + + break + done + + # remove spaces on begin of $projtoprocess + projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` + +done + +if test "$allproj" != fail ; then + + # now go through the list of .pc files and assemble compiler and linker flags + # important is here to obey the reverse order that has been setup before, + # since then libraries that are required by several others should be after these other libraries + pcfilesprocessed="" + + save_IFS="$IFS" + IFS=":" + for pcfile in $allpcfiles ; do + + # if $pcfile has been processed already, skip this round + if test "x$pcfilesprocessed" != x ; then + for pcfiledone in $pcfilesprocessed ; do + if test "$pcfiledone" = "$pcfile" ; then + continue 2 + fi + done + fi + + # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: + # replace "Libs:" by "echo projlibs=" + # replace "Cflags:" by "echo projcflags=" + # remove every line starting with : + pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` + + # set projcflags and projlibs variables by running $pcfilemod + # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default + projcflags= + projlibs= + IFS="$save_IFS" + eval `sh -c "$pcfilemod"` + IFS=":" + + # add CYGPATH_W cludge into include flags and set CFLAGS variable + if test "${CYGPATH_W}" != "echo"; then + projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` + fi + BLAS_CFLAGS="$projcflags $BLAS_CFLAGS" + + # set LIBS variable + BLAS_LIBS="$projlibs $BLAS_LIBS" + + # remember that we have processed $pcfile + pcfilesprocessed="$pcfilesprocessed:$pcfile" + + done + IFS="$save_IFS" + + + # now go through the list of .pc files for installed projects and assemble compiler and linker flags + # important is here again to obey the reverse order that has been setup before, + # since then libraries that are required by several others should be after these other libraries + pcfilesprocessed="" + + save_IFS="$IFS" + IFS=":" + for pcfile in $allpcifiles ; do + + # if $pcfile has been processed already, skip this round + if test "x$pcfilesprocessed" != x ; then + for pcfiledone in $pcfilesprocessed ; do + if test "$pcfiledone" = "$pcfile" ; then + continue 2 + fi + done + fi + + # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: + # replace "Libs:" by "echo projlibs=" + # replace "Cflags:" by "echo projcflags=" + # remove every line starting with : + pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` + + # set projcflags and projlibs variables by running $pcfilemod + # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default + projcflags= + projlibs= + IFS="$save_IFS" + eval `sh -c "$pcfilemod"` + IFS=":" + + # add CYGPATH_W cludge into include flags and set CFLAGS variable + if test "${CYGPATH_W}" != "echo"; then + projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` + fi + BLAS_CFLAGS_INSTALLED="$projcflags $BLAS_CFLAGS_INSTALLED" + + # set LIBS variable + BLAS_LIBS_INSTALLED="$projlibs $BLAS_LIBS_INSTALLED" + + # remember that we have processed $pcfile + pcfilesprocessed="$pcfilesprocessed:$pcfile" + + done + IFS="$save_IFS" + + + # finish up + coin_has_blas=yes + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define COIN_HAS_BLAS 1 +_ACEOF + + + # adjust linker flags for (i)cl compiler + # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), + # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", + # everything of the form "-lname" by "libname.lib", and + # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` + if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; + then + BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` + BLAS_LIBS_INSTALLED=`echo " $BLAS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` + fi + + BLAS_PCREQUIRES="coinblas" + + CGLCONICLIB_PCREQUIRES="coinblas $CGLCONICLIB_PCREQUIRES" + CGLCONICLIB_CFLAGS="$BLAS_CFLAGS $CGLCONICLIB_CFLAGS" + CGLCONICLIB_LIBS="$BLAS_LIBS $CGLCONICLIB_LIBS" + CGLCONICLIB_CFLAGS_INSTALLED="$BLAS_CFLAGS_INSTALLED $CGLCONICLIB_CFLAGS_INSTALLED" + CGLCONICLIB_LIBS_INSTALLED="$BLAS_LIBS_INSTALLED $CGLCONICLIB_LIBS_INSTALLED" + + +fi + + + +if test $coin_has_blas != notGiven && + test $coin_has_blas != skipping; then + COIN_HAS_BLAS_TRUE= + COIN_HAS_BLAS_FALSE='#' +else + COIN_HAS_BLAS_TRUE='#' + COIN_HAS_BLAS_FALSE= +fi + + + + fi + +else + echo "$as_me:$LINENO: result: $coin_has_blas" >&5 +echo "${ECHO_T}$coin_has_blas" >&6 +fi + +if test $coin_has_blas != skipping && + test $coin_has_blas != notGiven ; then + +cat >>confdefs.h <<\_ACEOF +#define COIN_HAS_BLAS 1 +_ACEOF + + + # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. +if test "${enable_interpackage_dependencies+set}" = set; then + enableval="$enable_interpackage_dependencies" + +else + enable_interpackage_dependencies=yes +fi; + + if test $enable_interpackage_dependencies = yes ; then + # construct dependencies variables from LIBS variables + # we add an extra space in LIBS so we can substitute out everything starting with " -" + # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows + # then remove everything of the form -xxx + # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) + BLAS_DEPENDENCIES=`echo " $BLAS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` + + CGLCONICLIB_DEPENDENCIES=`echo " $CGLCONICLIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` + + fi + + if test 1 = 0 ; then #change this test to enable a bit of debugging output + if test -n "$BLAS_CFLAGS" ; then + { echo "$as_me:$LINENO: Blas CFLAGS are $BLAS_CFLAGS" >&5 +echo "$as_me: Blas CFLAGS are $BLAS_CFLAGS" >&6;} + fi + if test -n "$BLAS_LIBS" ; then + { echo "$as_me:$LINENO: Blas LIBS are $BLAS_LIBS" >&5 +echo "$as_me: Blas LIBS are $BLAS_LIBS" >&6;} + fi + if test -n "$BLAS_DEPENDENCIES" ; then + { echo "$as_me:$LINENO: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&5 +echo "$as_me: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&6;} + fi + if test -n "$BLAS_DATA" ; then + { echo "$as_me:$LINENO: Blas DATA is $BLAS_DATA" >&5 +echo "$as_me: Blas DATA is $BLAS_DATA" >&6;} + fi + if test -n "$BLAS_PCLIBS" ; then + { echo "$as_me:$LINENO: Blas PCLIBS are $BLAS_PCLIBS" >&5 +echo "$as_me: Blas PCLIBS are $BLAS_PCLIBS" >&6;} + fi + if test -n "$BLAS_PCREQUIRES" ; then + { echo "$as_me:$LINENO: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&5 +echo "$as_me: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&6;} + fi + + { echo "$as_me:$LINENO: CglConicLib CFLAGS are $CGLCONICLIB_CFLAGS" >&5 +echo "$as_me: CglConicLib CFLAGS are $CGLCONICLIB_CFLAGS" >&6;} + { echo "$as_me:$LINENO: CglConicLib LIBS are $CGLCONICLIB_LIBS" >&5 +echo "$as_me: CglConicLib LIBS are $CGLCONICLIB_LIBS" >&6;} + { echo "$as_me:$LINENO: CglConicLib DEPENDENCIES are $CGLCONICLIB_DEPENDENCIES" >&5 +echo "$as_me: CglConicLib DEPENDENCIES are $CGLCONICLIB_DEPENDENCIES" >&6;} + + fi +fi + +# Define the Makefile conditional + + +if test $coin_has_blas != notGiven && + test $coin_has_blas != skipping; then + COIN_HAS_BLAS_TRUE= + COIN_HAS_BLAS_FALSE='#' +else + COIN_HAS_BLAS_TRUE='#' + COIN_HAS_BLAS_FALSE= +fi + + + + +elif test "x$use_blas" != x && test "$use_blas" != no; then + coin_has_blas=yes + + +if test 0 = 0; then + COIN_HAS_BLAS_TRUE= + COIN_HAS_BLAS_FALSE='#' +else + COIN_HAS_BLAS_TRUE='#' + COIN_HAS_BLAS_FALSE= +fi + + +cat >>confdefs.h <<\_ACEOF +#define COIN_HAS_BLAS 1 +_ACEOF + + BLAS_LIBS="$use_blas" + BLAS_CFLAGS= + BLAS_DATA= + + + + + CGLCONICLIB_PCLIBS="$BLAS_LIBS $CGLCONICLIB_PCLIBS" + CGLCONICLIB_LIBS="$BLAS_LIBS $CGLCONICLIB_LIBS" + CGLCONICLIB_LIBS_INSTALLED="$BLAS_LIBS $CGLCONICLIB_LIBS_INSTALLED" + + +else + coin_has_blas=no + + +if test 0 = 1; then + COIN_HAS_BLAS_TRUE= + COIN_HAS_BLAS_FALSE='#' +else + COIN_HAS_BLAS_TRUE='#' + COIN_HAS_BLAS_FALSE= +fi + +fi + + + + + + + + + + +# Check whether --with-lapack or --without-lapack was given. +if test "${with_lapack+set}" = set; then + withval="$with_lapack" + use_lapack=$withval +else + use_lapack= +fi; + +#if user specified --with-lapack-lib, then we should give COIN_HAS_PACKAGE preference + +# Check whether --with-lapack-lib or --without-lapack-lib was given. +if test "${with_lapack_lib+set}" = set; then + withval="$with_lapack_lib" + use_lapack=BUILD +fi; + +# Check if user supplied option makes sense +if test x"$use_lapack" != x; then + if test "$use_lapack" = "BUILD"; then + # we come to this later + : + elif test "$use_lapack" != no; then + use_lapack="$use_lapack $BLAS_LIBS" + coin_save_LIBS="$LIBS" + LIBS="$use_lapack $LIBS" + if test "$F77" != unavailable; then + echo "$as_me:$LINENO: checking whether user supplied LAPACKLIB=\"$use_lapack\" works" >&5 +echo $ECHO_N "checking whether user supplied LAPACKLIB=\"$use_lapack\" works... $ECHO_C" >&6 + coin_need_flibs=no + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call dsyev + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 +echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 +echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 +echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} + { (exit 1); exit 1; }; } + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 +echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 +echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} + { (exit 1); exit 1; }; } + fi + fi + ;; +esac + + else + { echo "$as_me:$LINENO: whether user supplied LAPACKLIB=\"$use_lapack\" works with C linkage" >&5 +echo "$as_me: whether user supplied LAPACKLIB=\"$use_lapack\" works with C linkage" >&6;} + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + echo "$as_me:$LINENO: checking for dsyev" >&5 +echo $ECHO_N "checking for dsyev... $ECHO_C" >&6 +if test "${ac_cv_func_dsyev+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dsyev to an innocuous variant, in case declares dsyev. + For example, HP-UX 11i declares gettimeofday. */ +#define dsyev innocuous_dsyev + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dsyev (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dsyev + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dsyev (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_dsyev) || defined (__stub___dsyev) +choke me +#else +char (*f) () = dsyev; +#endif +#ifdef __cplusplus +} +#endif + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +return f != dsyev; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_dsyev=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_dsyev=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_dsyev" >&5 +echo "${ECHO_T}$ac_cv_func_dsyev" >&6 +if test $ac_cv_func_dsyev = yes; then + : +else + { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 +echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} + { (exit 1); exit 1; }; } +fi + + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + fi + LIBS="$coin_save_LIBS" + fi +else + if test x$coin_has_blas = xyes; then + # First try to see if LAPACK is already available with BLAS library + coin_save_LIBS="$LIBS" + LIBS="$BLAS_LIBS $LIBS" + if test "$F77" != unavailable; then + coin_need_flibs=no + echo "$as_me:$LINENO: checking whether LAPACK is already available with BLAS library" >&5 +echo $ECHO_N "checking whether LAPACK is already available with BLAS library... $ECHO_C" >&6 + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call dsyev + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_lapack="$BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack="$BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack="$BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack="$BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack="$BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + else + { echo "$as_me:$LINENO: checking whether LAPACK is already available with BLAS library" >&5 +echo "$as_me: checking whether LAPACK is already available with BLAS library" >&6;} + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + echo "$as_me:$LINENO: checking for dsyev" >&5 +echo $ECHO_N "checking for dsyev... $ECHO_C" >&6 +if test "${ac_cv_func_dsyev+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dsyev to an innocuous variant, in case declares dsyev. + For example, HP-UX 11i declares gettimeofday. */ +#define dsyev innocuous_dsyev + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dsyev (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dsyev + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dsyev (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_dsyev) || defined (__stub___dsyev) +choke me +#else +char (*f) () = dsyev; +#endif +#ifdef __cplusplus +} +#endif + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +return f != dsyev; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_dsyev=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_dsyev=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_dsyev" >&5 +echo "${ECHO_T}$ac_cv_func_dsyev" >&6 +if test $ac_cv_func_dsyev = yes; then + use_lapack="$BLAS_LIBS" +fi + + ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + fi + LIBS="$coin_save_LIBS" + fi + if test -z "$use_lapack"; then + # Try to autodetect the library for lapack based on build system + case $build in + # TODO: Is this check actually needed here, since -lcomplib.sigmath should have been recognized as Blas library, + # and above it is checked whether the Blas library already contains Lapack + *-sgi-*) + echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has LAPACK" >&5 +echo $ECHO_N "checking whether -lcomplib.sgimath has LAPACK... $ECHO_C" >&6 + coin_save_LIBS="$LIBS" + coin_need_flibs=no + LIBS="-lcomplib.sgimath $BLAS_LIBS $LIBS" + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call dsyev + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_lapack="-lcomplib.sgimath $BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack="-lcomplib.sgimath $BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack="-lcomplib.sgimath $BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack="-lcomplib.sgimath $BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack="-lcomplib.sgimath $BLAS_LIBS" + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + LIBS="$coin_save_LIBS" + ;; + + # See comments in COIN_CHECK_PACKAGE_BLAS. + # TODO: Is this check actually needed here, since -lsunperf should have been recognized as Blas library, + # and above it is checked whether the Blas library already contains Lapack + *-*-solaris*) + echo "$as_me:$LINENO: checking for LAPACK in libsunperf" >&5 +echo $ECHO_N "checking for LAPACK in libsunperf... $ECHO_C" >&6 + coin_need_flibs=no + coin_save_LIBS="$LIBS" + LIBS="-lsunperf $BLAS_LIBS $FLIBS $LIBS" + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call dsyev + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_lapack='-lsunperf $BLAS_LIBS' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack='-lsunperf $BLAS_LIBS' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack='-lsunperf $BLAS_LIBS' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack='-lsunperf $BLAS_LIBS' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack='-lsunperf $BLAS_LIBS' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + LIBS="$coin_save_LIBS" + ;; + # On cygwin, do this check only if doscompile is disabled. The prebuilt library + # will want to link with cygwin, hence won't run standalone in DOS. + esac + fi + + if test -z "$use_lapack" ; then + echo "$as_me:$LINENO: checking whether -llapack has LAPACK" >&5 +echo $ECHO_N "checking whether -llapack has LAPACK... $ECHO_C" >&6 + coin_need_flibs=no + coin_save_LIBS="$LIBS" + LIBS="-llapack $BLAS_LIBS $LIBS" + case $ac_ext in + f) + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ + call dsyev + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + use_lapack='-llapack' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ;; + c) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack='-llapack' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +void $cfuncdsyev(); +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack='-llapack' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; + cc|cpp) + ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +case $ac_cv_f77_mangling in + upper*) ac_val="DSYEV" ;; + lower*) ac_val="dsyev" ;; + *) ac_val="unknown" ;; +esac +case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac + +cfuncdsyev="$ac_val" + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test x"$coin_need_flibs" = xyes; then + flink_try=no; + else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + flink_try=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +flink_try=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test $flink_try = yes; then + use_lapack='-llapack' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + else + if test x"$FLIBS" != x; then + flink_save_libs="$LIBS" + LIBS="$LIBS $FLIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +extern "C" {void $cfuncdsyev();} +#ifdef F77_DUMMY_MAIN + +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } + +#endif +int +main () +{ +$cfuncdsyev() + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBS="$flink_save_libs" + coin_need_flibs=yes + use_lapack='-llapack' + if test $coin_need_flibs = yes ; then + use_lapack="$use_lapack $FLIBS" + fi + echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 +echo "${ECHO_T}yes: $use_lapack" >&6 + + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBS="$flink_save_libs" + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi + ;; +esac + + LIBS="$coin_save_LIBS" + fi + + # If we have no other ideas, consider building LAPACK. + if test -z "$use_lapack" ; then + use_lapack=BUILD + fi +fi + +if test "x$use_lapack" = xBUILD ; then + +echo "$as_me:$LINENO: checking for COIN-OR package Lapack" >&5 +echo $ECHO_N "checking for COIN-OR package Lapack... $ECHO_C" >&6 + +coin_has_lapack=notGiven + +# check if user wants to skip package in any case +if test x"$COIN_SKIP_PROJECTS" != x; then + for dir in $COIN_SKIP_PROJECTS; do + if test $dir = "Lapack"; then + coin_has_lapack=skipping + fi + done +fi + +if test "$coin_has_lapack" != skipping; then + +# Check whether --with-m4_tolower(Lapack) or --without-m4_tolower(Lapack) was given. +if test "${with_lapack+set}" = set; then + withval="$with_lapack" + if test "$withval" = no ; then + coin_has_lapack=skipping + fi + +fi; +fi + +LAPACK_LIBS= +LAPACK_CFLAGS= +LAPACK_DATA= +LAPACK_DEPENDENCIES= +LAPACK_PCLIBS= +LAPACK_PCREQUIRES= + + + + + + + + + + + + + + + + + +#check if user provided LIBS, CFLAGS, or DATA for package or disables use of package +if test $coin_has_lapack != skipping; then + +# Check whether --with-m4_tolower(Lapack)-lib or --without-m4_tolower(Lapack)-lib was given. +if test "${with_lapack_lib+set}" = set; then + withval="$with_lapack_lib" + if test "$withval" = no ; then + coin_has_lapack=skipping + else + coin_has_lapack=yes + LAPACK_LIBS="$withval" + LAPACK_PCLIBS="$withval" + + CGLCONICLIB_PCLIBS="$withval $CGLCONICLIB_PCLIBS" + CGLCONICLIB_LIBS="$withval $CGLCONICLIB_LIBS" + + # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables + if test -z "$PKG_CONFIG" ; then + LAPACK_LIBS_INSTALLED="$withval" + CGLCONICLIB_LIBS_INSTALLED="$withval $CGLCONICLIB_LIBS_INSTALLED" + fi + fi + +fi; +fi + +if test $coin_has_lapack != skipping; then + +# Check whether --with-m4_tolower(Lapack)-incdir or --without-m4_tolower(Lapack)-incdir was given. +if test "${with_lapack_incdir+set}" = set; then + withval="$with_lapack_incdir" + if test "$withval" = no ; then + coin_has_lapack=skipping + else + coin_has_lapack=yes + LAPACK_CFLAGS="-I`${CYGPATH_W} $withval`" + CGLCONICLIB_CFLAGS="-I`${CYGPATH_W} $withval` $CGLCONICLIB_CFLAGS" + # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables + if test -z "$PKG_CONFIG" ; then + LAPACK_CFLAGS_INSTALLED="$LAPACK_CFLAGS" + CGLCONICLIB_CFLAGS_INSTALLED="$LAPACK_CFLAGS $CGLCONICLIB_CFLAGS_INSTALLED" + fi + fi + +fi; +fi + +if test $coin_has_lapack != skipping; then + +# Check whether --with-m4_tolower(Lapack)-datadir or --without-m4_tolower(Lapack)-datadir was given. +if test "${with_lapack_datadir+set}" = set; then + withval="$with_lapack_datadir" + if test "$withval" = no ; then + coin_has_lapack=skipping + else + coin_has_lapack=yes + LAPACK_DATA="$withval" + # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables + if test -z "$PKG_CONFIG" ; then + LAPACK_DATA_INSTALLED="$withval" + fi + fi + +fi; +fi + +if test $coin_has_lapack = notGiven; then + if test -n "$PKG_CONFIG" ; then + # set search path for pkg-config + # need to export variable to be sure that the following pkg-config gets these values + coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" + PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" + export PKG_CONFIG_PATH + + # let pkg-config do it's magic + + + +if test -n "$PKG_CONFIG" ; then + if $PKG_CONFIG --exists "coinlapack"; then + LAPACK_VERSIONS=`$PKG_CONFIG --modversion "coinlapack" 2>/dev/null | tr '\n' ' '` + cflags=`$PKG_CONFIG --cflags "coinlapack" 2>/dev/null` + # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files + # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's + # but only do this if is not trivial + if test "$CYGPATH_W" != "echo" ; then + # need to put into brackets since otherwise autoconf replaces the brackets in the sed command + cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` + fi + LAPACK_CFLAGS="$cflags" + LAPACK_LIBS=`$PKG_CONFIG --libs "coinlapack" 2>/dev/null` + LAPACK_DATA=`$PKG_CONFIG --variable=datadir "coinlapack" 2>/dev/null` + coin_has_lapack=yes + echo "$as_me:$LINENO: result: yes: $LAPACK_VERSIONS" >&5 +echo "${ECHO_T}yes: $LAPACK_VERSIONS" >&6 + + # adjust linker flags for (i)cl compiler + # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) + if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; + then + LAPACK_LIBS=`echo " $LAPACK_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` + fi + LAPACK_PCREQUIRES="coinlapack" + + # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in CglConicLib + + CGLCONICLIB_PCREQUIRES="coinlapack $CGLCONICLIB_PCREQUIRES" + CGLCONICLIB_CFLAGS="$LAPACK_CFLAGS $CGLCONICLIB_CFLAGS" + CGLCONICLIB_LIBS="$LAPACK_LIBS $CGLCONICLIB_LIBS" + + + + else + LAPACK_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinlapack"` + coin_has_lapack=notGiven + echo "$as_me:$LINENO: result: not given: $LAPACK_PKG_ERRORS" >&5 +echo "${ECHO_T}not given: $LAPACK_PKG_ERRORS" >&6 + + fi +else + { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Lapack without pkg-config\"" >&5 +echo "$as_me: error: \"Cannot check for existance of module Lapack without pkg-config\"" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + # reset PKG_CONFIG_PATH variable + PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" + export PKG_CONFIG_PATH + + else + echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 +echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 + +echo "$as_me:$LINENO: checking for COIN-OR package Lapack (fallback)" >&5 +echo $ECHO_N "checking for COIN-OR package Lapack (fallback)... $ECHO_C" >&6 + +coin_has_lapack=notGiven +LAPACK_LIBS= +LAPACK_LIBS_INSTALLED= +LAPACK_CFLAGS= +LAPACK_CFLAGS_INSTALLED= +LAPACK_DATA= +LAPACK_DATA_INSTALLED= +LAPACK_PCLIBS= +LAPACK_PCREQUIRES= + +# initial list of dependencies is "coinlapack", but we need to filter out version number specifications (= x, <= x, >= x, != x) +projtoprocess="coinlapack" + +# we first expand the list of projects to process by adding all dependencies just behind the project which depends on it +# further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards +# the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples +# also, we setup the DATA variable +allproj="" +allpcfiles="" +allpcifiles="" +while test "x$projtoprocess" != x ; do + + for proj in $projtoprocess ; do + # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it + pcfile="" + save_IFS="$IFS" + IFS=":" + for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do + # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again + if test -r "$dir/${proj}-uninstalled.pc" ; then + pcfile="$dir/$proj-uninstalled.pc" + if test -r "$dir/${proj}.pc" ; then + pcifile="$dir/${proj}.pc" + else + { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 +echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} + pcifile= + fi + break + fi + done + IFS="$save_IFS" + + if test "x$pcfile" != x ; then + # read dependencies from $pcfile and filter it + projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` + + # add projrequires to the front of the list of projects that have to be processed next + # at the same time, remove $proj from this list + projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` + + # read DATA from $pcfile, if _DATA is still empty + if test "x$LAPACK_DATA" = x ; then + projdatadir= + pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` + eval `sh -c "$pcfilemod"` + LAPACK_DATA="$projdatadir" + fi + + allproj="$allproj $proj" + allpcfiles="$pcfile:$allpcfiles" + + else + echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 +echo "${ECHO_T}no, dependency $proj not available" >&6 + allproj=fail + break 2 + fi + + if test "x$pcifile" != x ; then + allpcifiles="$pcifile:$allpcifiles" + + # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty + if test "x$LAPACK_DATA_INSTALLED" = x ; then + projdatadir= + pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` + eval `sh -c "$pcifilemod"` + if test "${CYGPATH_W}" != "echo"; then + projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" + fi + LAPACK_DATA_INSTALLED="$projdatadir" + fi + + fi + + break + done + + # remove spaces on begin of $projtoprocess + projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` + +done + +if test "$allproj" != fail ; then + + # now go through the list of .pc files and assemble compiler and linker flags + # important is here to obey the reverse order that has been setup before, + # since then libraries that are required by several others should be after these other libraries + pcfilesprocessed="" + + save_IFS="$IFS" + IFS=":" + for pcfile in $allpcfiles ; do + + # if $pcfile has been processed already, skip this round + if test "x$pcfilesprocessed" != x ; then + for pcfiledone in $pcfilesprocessed ; do + if test "$pcfiledone" = "$pcfile" ; then + continue 2 + fi + done + fi + + # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: + # replace "Libs:" by "echo projlibs=" + # replace "Cflags:" by "echo projcflags=" + # remove every line starting with : + pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` + + # set projcflags and projlibs variables by running $pcfilemod + # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default + projcflags= + projlibs= + IFS="$save_IFS" + eval `sh -c "$pcfilemod"` + IFS=":" + + # add CYGPATH_W cludge into include flags and set CFLAGS variable + if test "${CYGPATH_W}" != "echo"; then + projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` + fi + LAPACK_CFLAGS="$projcflags $LAPACK_CFLAGS" + + # set LIBS variable + LAPACK_LIBS="$projlibs $LAPACK_LIBS" + + # remember that we have processed $pcfile + pcfilesprocessed="$pcfilesprocessed:$pcfile" + + done + IFS="$save_IFS" + + + # now go through the list of .pc files for installed projects and assemble compiler and linker flags + # important is here again to obey the reverse order that has been setup before, + # since then libraries that are required by several others should be after these other libraries + pcfilesprocessed="" + + save_IFS="$IFS" + IFS=":" + for pcfile in $allpcifiles ; do + + # if $pcfile has been processed already, skip this round + if test "x$pcfilesprocessed" != x ; then + for pcfiledone in $pcfilesprocessed ; do + if test "$pcfiledone" = "$pcfile" ; then + continue 2 + fi + done + fi + + # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: + # replace "Libs:" by "echo projlibs=" + # replace "Cflags:" by "echo projcflags=" + # remove every line starting with : + pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` + + # set projcflags and projlibs variables by running $pcfilemod + # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default + projcflags= + projlibs= + IFS="$save_IFS" + eval `sh -c "$pcfilemod"` + IFS=":" + + # add CYGPATH_W cludge into include flags and set CFLAGS variable + if test "${CYGPATH_W}" != "echo"; then + projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` + fi + LAPACK_CFLAGS_INSTALLED="$projcflags $LAPACK_CFLAGS_INSTALLED" + + # set LIBS variable + LAPACK_LIBS_INSTALLED="$projlibs $LAPACK_LIBS_INSTALLED" + + # remember that we have processed $pcfile + pcfilesprocessed="$pcfilesprocessed:$pcfile" + + done + IFS="$save_IFS" + + + # finish up + coin_has_lapack=yes + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define COIN_HAS_LAPACK 1 +_ACEOF + + + # adjust linker flags for (i)cl compiler + # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), + # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", + # everything of the form "-lname" by "libname.lib", and + # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` + if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; + then + LAPACK_LIBS=`echo " $LAPACK_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` + LAPACK_LIBS_INSTALLED=`echo " $LAPACK_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` + fi + + LAPACK_PCREQUIRES="coinlapack" + + CGLCONICLIB_PCREQUIRES="coinlapack $CGLCONICLIB_PCREQUIRES" + CGLCONICLIB_CFLAGS="$LAPACK_CFLAGS $CGLCONICLIB_CFLAGS" + CGLCONICLIB_LIBS="$LAPACK_LIBS $CGLCONICLIB_LIBS" + CGLCONICLIB_CFLAGS_INSTALLED="$LAPACK_CFLAGS_INSTALLED $CGLCONICLIB_CFLAGS_INSTALLED" + CGLCONICLIB_LIBS_INSTALLED="$LAPACK_LIBS_INSTALLED $CGLCONICLIB_LIBS_INSTALLED" + + +fi + + + +if test $coin_has_lapack != notGiven && + test $coin_has_lapack != skipping; then + COIN_HAS_LAPACK_TRUE= + COIN_HAS_LAPACK_FALSE='#' +else + COIN_HAS_LAPACK_TRUE='#' + COIN_HAS_LAPACK_FALSE= +fi + + + + fi + +else + echo "$as_me:$LINENO: result: $coin_has_lapack" >&5 +echo "${ECHO_T}$coin_has_lapack" >&6 +fi + +if test $coin_has_lapack != skipping && + test $coin_has_lapack != notGiven ; then + +cat >>confdefs.h <<\_ACEOF +#define COIN_HAS_LAPACK 1 +_ACEOF + + + # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. +if test "${enable_interpackage_dependencies+set}" = set; then + enableval="$enable_interpackage_dependencies" + +else + enable_interpackage_dependencies=yes +fi; + + if test $enable_interpackage_dependencies = yes ; then + # construct dependencies variables from LIBS variables + # we add an extra space in LIBS so we can substitute out everything starting with " -" + # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows + # then remove everything of the form -xxx + # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) + LAPACK_DEPENDENCIES=`echo " $LAPACK_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` + + CGLCONICLIB_DEPENDENCIES=`echo " $CGLCONICLIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` + + fi + + if test 1 = 0 ; then #change this test to enable a bit of debugging output + if test -n "$LAPACK_CFLAGS" ; then + { echo "$as_me:$LINENO: Lapack CFLAGS are $LAPACK_CFLAGS" >&5 +echo "$as_me: Lapack CFLAGS are $LAPACK_CFLAGS" >&6;} + fi + if test -n "$LAPACK_LIBS" ; then + { echo "$as_me:$LINENO: Lapack LIBS are $LAPACK_LIBS" >&5 +echo "$as_me: Lapack LIBS are $LAPACK_LIBS" >&6;} + fi + if test -n "$LAPACK_DEPENDENCIES" ; then + { echo "$as_me:$LINENO: Lapack DEPENDENCIES are $LAPACK_DEPENDENCIES" >&5 +echo "$as_me: Lapack DEPENDENCIES are $LAPACK_DEPENDENCIES" >&6;} + fi + if test -n "$LAPACK_DATA" ; then + { echo "$as_me:$LINENO: Lapack DATA is $LAPACK_DATA" >&5 +echo "$as_me: Lapack DATA is $LAPACK_DATA" >&6;} + fi + if test -n "$LAPACK_PCLIBS" ; then + { echo "$as_me:$LINENO: Lapack PCLIBS are $LAPACK_PCLIBS" >&5 +echo "$as_me: Lapack PCLIBS are $LAPACK_PCLIBS" >&6;} + fi + if test -n "$LAPACK_PCREQUIRES" ; then + { echo "$as_me:$LINENO: Lapack PCREQUIRES are $LAPACK_PCREQUIRES" >&5 +echo "$as_me: Lapack PCREQUIRES are $LAPACK_PCREQUIRES" >&6;} + fi + + { echo "$as_me:$LINENO: CglConicLib CFLAGS are $CGLCONICLIB_CFLAGS" >&5 +echo "$as_me: CglConicLib CFLAGS are $CGLCONICLIB_CFLAGS" >&6;} + { echo "$as_me:$LINENO: CglConicLib LIBS are $CGLCONICLIB_LIBS" >&5 +echo "$as_me: CglConicLib LIBS are $CGLCONICLIB_LIBS" >&6;} + { echo "$as_me:$LINENO: CglConicLib DEPENDENCIES are $CGLCONICLIB_DEPENDENCIES" >&5 +echo "$as_me: CglConicLib DEPENDENCIES are $CGLCONICLIB_DEPENDENCIES" >&6;} + + fi +fi + +# Define the Makefile conditional + + +if test $coin_has_lapack != notGiven && + test $coin_has_lapack != skipping; then + COIN_HAS_LAPACK_TRUE= + COIN_HAS_LAPACK_FALSE='#' +else + COIN_HAS_LAPACK_TRUE='#' + COIN_HAS_LAPACK_FALSE= +fi + + + + +elif test "x$use_lapack" != x && test "$use_lapack" != no; then + coin_has_lapack=yes + + +if test 0 = 0; then + COIN_HAS_LAPACK_TRUE= + COIN_HAS_LAPACK_FALSE='#' +else + COIN_HAS_LAPACK_TRUE='#' + COIN_HAS_LAPACK_FALSE= +fi + + +cat >>confdefs.h <<\_ACEOF +#define COIN_HAS_LAPACK 1 +_ACEOF + + LAPACK_LIBS="$use_lapack" + LAPACK_CFLAGS= + LAPACK_DATA= + + + + + CGLCONICLIB_PCLIBS="$LAPACK_LIBS $CGLCONICLIB_PCLIBS" + CGLCONICLIB_LIBS="$LAPACK_LIBS $CGLCONICLIB_LIBS" + CGLCONICLIB_LIBS_INSTALLED="$LAPACK_LIBS $CGLCONICLIB_LIBS_INSTALLED" + + +else + coin_has_lapack=no + + +if test 0 = 1; then + COIN_HAS_LAPACK_TRUE= + COIN_HAS_LAPACK_FALSE='#' +else + COIN_HAS_LAPACK_TRUE='#' + COIN_HAS_LAPACK_FALSE= +fi + +fi + + + + + + + + + +############################################################################# +# Solvers for unittesting # +############################################################################# + +# These are not really required for the compilation of Cgl, but we +# need to know which are available in order to compile the unitTest +# correctly. + + +############################################################################# +# System header # +############################################################################# + + +ac_ext=cc +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +#if test x"" = x; then +# hdr="#include " +#else +# hdr="" +#fi +#AC_CHECK_HEADERS([cmath],[],[],[$hdr]) + +for ac_header in cmath +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_cxx_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_cxx_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} @@ -27638,6 +34920,62 @@ echo "$as_me: error: conditional \"COIN_HAS_SAMPLE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${COIN_HAS_DOXYGEN_TRUE}" && test -z "${COIN_HAS_DOXYGEN_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_DOXYGEN\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -28410,6 +35748,25 @@ s,@SAMPLE_CFLAGS_INSTALLED@,$SAMPLE_CFLAGS_INSTALLED,;t t s,@SAMPLE_DATA_INSTALLED@,$SAMPLE_DATA_INSTALLED,;t t s,@COIN_HAS_SAMPLE_TRUE@,$COIN_HAS_SAMPLE_TRUE,;t t s,@COIN_HAS_SAMPLE_FALSE@,$COIN_HAS_SAMPLE_FALSE,;t t +s,@FLIBS@,$FLIBS,;t t +s,@BLAS_LIBS@,$BLAS_LIBS,;t t +s,@BLAS_CFLAGS@,$BLAS_CFLAGS,;t t +s,@BLAS_DATA@,$BLAS_DATA,;t t +s,@BLAS_DEPENDENCIES@,$BLAS_DEPENDENCIES,;t t +s,@BLAS_LIBS_INSTALLED@,$BLAS_LIBS_INSTALLED,;t t +s,@BLAS_CFLAGS_INSTALLED@,$BLAS_CFLAGS_INSTALLED,;t t +s,@BLAS_DATA_INSTALLED@,$BLAS_DATA_INSTALLED,;t t +s,@COIN_HAS_BLAS_TRUE@,$COIN_HAS_BLAS_TRUE,;t t +s,@COIN_HAS_BLAS_FALSE@,$COIN_HAS_BLAS_FALSE,;t t +s,@LAPACK_LIBS@,$LAPACK_LIBS,;t t +s,@LAPACK_CFLAGS@,$LAPACK_CFLAGS,;t t +s,@LAPACK_DATA@,$LAPACK_DATA,;t t +s,@LAPACK_DEPENDENCIES@,$LAPACK_DEPENDENCIES,;t t +s,@LAPACK_LIBS_INSTALLED@,$LAPACK_LIBS_INSTALLED,;t t +s,@LAPACK_CFLAGS_INSTALLED@,$LAPACK_CFLAGS_INSTALLED,;t t +s,@LAPACK_DATA_INSTALLED@,$LAPACK_DATA_INSTALLED,;t t +s,@COIN_HAS_LAPACK_TRUE@,$COIN_HAS_LAPACK_TRUE,;t t +s,@COIN_HAS_LAPACK_FALSE@,$COIN_HAS_LAPACK_FALSE,;t t s,@CGLCONIC_SUBDIRS@,$CGLCONIC_SUBDIRS,;t t s,@CGLCONIC_SUBLIBS@,$CGLCONIC_SUBLIBS,;t t s,@coin_have_doxygen@,$coin_have_doxygen,;t t diff --git a/configure.ac b/configure.ac index 2ef84fa..ecfc1cc 100644 --- a/configure.ac +++ b/configure.ac @@ -158,8 +158,8 @@ test $coin_has_osicplex = yes]) # Check thirdparty libraries AC_COIN_CHECK_PACKAGE(Sample, [coindatasample]) -#AC_COIN_CHECK_PACKAGE_BLAS(CglConicLib) -#AC_COIN_CHECK_PACKAGE_LAPACK(CglConicLib) +AC_COIN_CHECK_PACKAGE_BLAS(CglConicLib) +AC_COIN_CHECK_PACKAGE_LAPACK(CglConicLib) ############################################################################# # Solvers for unittesting # diff --git a/examples/Makefile.in b/examples/Makefile.in index 4d7a61a..a901b72 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -124,6 +124,7 @@ CYGPATH_W = @CYGPATH_W@ # Here we list all possible generated objects or executables to delete them CLEANFILES = \ gd1.@OBJEXT@ gd1@EXEEXT@ \ + dual.@OBJEXT@ dual@EXEEXT@ \ bental.@OBJEXT@ bental@EXEEXT@ \ milp_cuts.@OBJEXT@ milp_cuts@EXEEXT@ \ canonical.@OBJEXT@ canonical@EXEEXT@ \ diff --git a/examples/gd1.cpp b/examples/gd1.cpp index cb92cf5..9359e2e 100644 --- a/examples/gd1.cpp +++ b/examples/gd1.cpp @@ -16,6 +16,7 @@ #include #include #include +#include // CoinUtils headers #include #include @@ -61,6 +62,8 @@ using std::string; int main(int argc, const char *argv[]) { // If no parms specified then use these string mpsFileName = argv[1]; + string baseName = mpsFileName.substr(mpsFileName.rfind("/")+1, + mpsFileName.rfind(".")-mpsFileName.rfind("/")-1); try { // Instantiate a specific solver interface //OsiConicSolverInterface * si = new ColaModel(); @@ -84,13 +87,20 @@ int main(int argc, const char *argv[]) { do { // Get current solution value obj = si->getObjValue(); + std::cout << "Obj value is " << obj << std::endl; // Generate and apply cuts + //OsiConicSolverInterface * nsi = cg.generateAndAddBestCut(*si); OsiConicSolverInterface * nsi = cg.generateAndAddCuts(*si); delete si; si = nsi; - //si->writeMps("after_cut"); + std::stringstream msg_stream; + //msg_stream << baseName << "dc" << cg.getNumCutsAdded(); + msg_stream << baseName; + si->writeMps(msg_stream.str().c_str()); + msg_stream.str(); si->resolve(); equalObj = eq(si->getObjValue(), obj); + break; } while (!equalObj); // double const * sol = si->getColSolution(); // Print total number of cuts applied, @@ -105,6 +115,8 @@ int main(int argc, const char *argv[]) { cout << "----------------------------------------------------------" <writeMps("after_cuts", "mps", 0.0); delete si; } catch (CoinError e) { diff --git a/src/CglConicGD1/CglConicGD1.cpp b/src/CglConicGD1/CglConicGD1.cpp index cf7a476..8090cd2 100644 --- a/src/CglConicGD1/CglConicGD1.cpp +++ b/src/CglConicGD1/CglConicGD1.cpp @@ -9,14 +9,16 @@ #include #include #include +#include -#define EPS 1e-5 +#define EPS 1e-2 CglConicGD1::CglConicGD1(OsiConicSolverInterface * solver) : param_(0) { param_ = new CglConicGD1Param(); num_cuts_ = 0; cuts_.clear(); + cuts_cone_ind_.clear(); } // copy constructor @@ -25,6 +27,7 @@ CglConicGD1::CglConicGD1(const CglConicGD1 & other) { param_ = new CglConicGD1Param(*(other.getParam())); num_cuts_ = 0; cuts_.clear(); + cuts_cone_ind_.clear(); } // copy assignment operator @@ -33,6 +36,7 @@ CglConicGD1 & CglConicGD1::operator=(const CglConicGD1 & rhs) { param_ = new CglConicGD1Param(*(rhs.getParam())); num_cuts_ = 0; cuts_.clear(); + cuts_cone_ind_.clear(); return *this; } @@ -44,6 +48,7 @@ CglConicGD1::~CglConicGD1() { delete cuts_[i]; } cuts_.clear(); + cuts_cone_ind_.clear(); } void CglConicGD1::setParam(const CglConicGD1Param & param) { @@ -57,6 +62,7 @@ void CglConicGD1::generateCuts(const OsiConicSolverInterface & si, throw std::exception(); } + // generates cuts and adds them to si. OsiConicSolverInterface * CglConicGD1::generateAndAddCuts( OsiConicSolverInterface const & si, @@ -92,23 +98,82 @@ OsiConicSolverInterface * CglConicGD1::generateAndAddCuts( continue; } // model.addConicCutGenerator(rows1, 2, 0); - CglConicGD1Cut * cut = new CglConicGD1Cut(&si, num_eq_rows, rows, - cut_cone, dis_var); - num_cuts_++; - if(!cut->valid()) { - std::cerr << "Generated cut is not valid." << std::endl; + // get disjunction index relative to the rows Ax = b + // submatrix A and right hand side + CoinPackedMatrix * A = NULL; + double * b = NULL; + double * sol = NULL; + int rel_dis_var; + get_input_set(solver, dis_var, cut_cone, num_eq_rows, rows, A, b, + sol, rel_dis_var); + CglConicGD1Cut * cut = new CglConicGD1Cut(PRIMAL_FORM, A, b, sol); + double alpha = ceil(sol[rel_dis_var]); + double beta = floor(sol[rel_dis_var]); + cut->generateCut(rel_dis_var, alpha, beta); + if(!cut->success()) { + std::cout << "tau is " << cut->tau() << std::endl; + std::cout << "Cut generation did not result any cuts." << std::endl; + + delete A; + delete[] b; + delete[] sol; + delete[] rows; delete cut; + continue; } else if (cut->infeasible()) { // problem is infeasible std::cout << "Problem is infeasible!" << std::endl; - throw std::exception(); + delete A; + delete[] b; + delete[] sol; + delete[] rows; + delete cut; + continue; + } + //cut->print_cut(); + // compute violation + double viol = 0.0; + double const * cutA = cut->getCutA(); + double const * cutb = cut->getCutb(); + // viol = (A sol -b)_1 - norm((A sol - b)_{2:m}) + if (cut->getNumRows() > 1) { + double * axmb = new double[cut->getNumRows()](); + for (int i=0; igetNumRows(); ++i) { + axmb[i] = 0.0; + for (int j=0; jgetNumCols(); ++j) { + axmb[i] += cutA[j*cut->getNumRows() + i]*sol[j]; + } + axmb[i] -= cutb[i]; + } + double nn = std::inner_product(axmb+1, axmb+cut->getNumRows(), axmb+1, 0.0); + viol = sqrt(nn) - axmb[0]; + // print Ax-b + //std::cout << "==================== A sol - b ====================" << std::endl; + //for (int i=0; igetNumRows(); ++i) std::cout << axmb[i] << " "; + //std::cout << std::endl; + delete[] axmb; } else { - cuts_.push_back(cut); + viol = std::inner_product(cutA, cutA+cut->getNumCols(), sol, -cutb[0]); + viol = -viol; } + + std::cout << "tau is " << cut->tau() << std::endl; + std::cout << "Violation is " << viol << std::endl; + + + + delete A; + delete[] b; + delete[] sol; delete[] rows; + + + num_cuts_++; + cuts_.push_back(cut); + cuts_cone_ind_.push_back(cut_cone); } add_cuts(solver); // clear cuts after adding them @@ -156,45 +221,63 @@ OsiConicSolverInterface * CglConicGD1::generateAndAddBestCut( get_rows(si, cut_cone, num_eq_rows, rows); if (num_eq_rows==0) { delete[] rows; + delete solver; continue; } - CglConicGD1Cut * cut = new CglConicGD1Cut(&si, num_eq_rows, rows, - cut_cone, dis_var); - //cut->print_cut(); - if(!cut->valid()) { - std::cerr << "Generated cut is not valid." << std::endl; + CoinPackedMatrix * A = NULL; + double * b = NULL; + double * sol = NULL; + int rel_dis_var; + get_input_set(solver, dis_var, cut_cone, num_eq_rows, rows, A, b, + sol, rel_dis_var); + CglConicGD1Cut * cut = new CglConicGD1Cut(PRIMAL_FORM, A, b, sol); + double alpha = ceil(sol[rel_dis_var]); + double beta = floor(sol[rel_dis_var]); + cut->generateCut(rel_dis_var, alpha, beta); + if(!cut->success()) { + std::cout << "tau is " << cut->tau() << std::endl; + std::cout << "Cut generation did not result any cuts." << std::endl; + + delete A; + delete[] b; + delete[] sol; + delete[] rows; delete cut; + delete solver; + continue; } - else { - // add cut to a solver, solve and check the improvement - add_cut(solver, cut); - solver->initialSolve(); - if (!solver->isProvenOptimal()) { - std::cerr << "Solver status is not optimal!" << std::endl; - continue; - } - // std::cout << solver->isAbandoned() << std::endl; - // std::cout << solver->isProvenOptimal() << std::endl; - // std::cout << solver->isProvenPrimalInfeasible() << std::endl; - // std::cout << solver->isProvenDualInfeasible() << std::endl; - // std::cout << solver->isPrimalObjectiveLimitReached() << std::endl; - // std::cout << solver->isDualObjectiveLimitReached() << std::endl; - // std::cout << solver->isIterationLimitReached() << std::endl; - - double obj = solver->getObjValue(); - double imp = obj-initial_obj; - std::cout << "Improvement is " << imp << std::endl; - if (imp>best_imp) { - best_var = dis_var; - best_cone = cut_cone; - best_imp = imp; - best_cut = cut; - } - else { - delete cut; - } + else if (cut->infeasible()) { + // problem is infeasible + std::cout << "Problem is infeasible!" + << std::endl; + delete A; + delete[] b; + delete[] sol; + delete[] rows; + delete cut; + delete solver; + continue; } + + delete A; + delete[] b; + delete[] sol; delete[] rows; + + add_cone_from_cut(*solver, cut, cut_cone); + solver->initialSolve(); + double obj = solver->getObjValue(); + double imp = obj-initial_obj; + std::cout << "Improvement is " << imp << std::endl; + if (imp>best_imp) { + best_var = dis_var; + best_cone = cut_cone; + best_imp = imp; + best_cut = cut; + } + else { + delete cut; + } delete solver; } // create a copy of the input @@ -202,8 +285,9 @@ OsiConicSolverInterface * CglConicGD1::generateAndAddBestCut( if (best_cut) { num_cuts_++; cuts_.push_back(best_cut); + cuts_cone_ind_.push_back(best_cone); // add best cut only - add_cut(solver, best_cut); + add_cone_from_cut(*solver, best_cut, best_cone); } clear_cuts(); //std::copy(cut_row.begin(), cut_row.end(), cut_row_in); @@ -218,106 +302,127 @@ void CglConicGD1::clear_cuts() { delete cuts_[i]; } cuts_.clear(); + cuts_cone_ind_.clear(); } void CglConicGD1::add_cuts(OsiConicSolverInterface * solver) { - std::vector::const_iterator it; - for (it=cuts_.begin(); it!=cuts_.end(); ++it) { - add_cut(solver, *it); + // std::vector::const_iterator it; + // for (it=cuts_.begin(); it!=cuts_.end(); ++it) { + // //add_cut(solver, *it); + // // add cut to the solver + // add_cone_from_cut(*solver, cut, cut_cone); + // } + + for (int i=0; ivalid()) { - std::cerr << "Generated cut is not valid." << std::endl; + CglConicGD1Cut const * cut) { + if(!cut->success()) { + std::cout << "Cut generation did not result any cuts." << std::endl; return; } - else if (cut->valid() && cut->infeasible()) { + else if (cut->infeasible()) { // cut procedure decided that problem is infeasible. - std::cerr << "Problem is infeasible!" << std::endl; + std::cout << "Problem is infeasible!" << std::endl; throw std::exception(); } - int cut_type = cut->cutType(); - if (cut_type==1) { - add_cone_form_cut(solver, cut); - } - else if (cut_type==2) { - int const * ind = cut->linear_cut_ind(); - double const * coef = cut->linear_cut_coef(); - double rhs = cut->linear_cut_rhs(); - int size = cut->linear_cut_size(); - // solver->addRow(size, ind, coef, rhs, solver->getInfinity()); - // for now assume disjunction is variable disjunction and - // update column bound. - solver->setColLower(ind[0], rhs); - } - else if (cut_type==3) { - int const * ind = cut->linear_cut_ind(); - double const * coef = cut->linear_cut_coef(); - double rhs = cut->linear_cut_rhs(); - int size = cut->linear_cut_size(); - // solver->addRow(size, ind, coef, -solver->getInfinity(), rhs); - solver->setColUpper(ind[0], rhs); - } - else { - std::cerr << "Unknown conic cut type!" << std::endl; + // cut is form cutA x - cutb \in L. + // cut is linear if number of rows of cutA is 1 and then cut is + // cutA x - cutb >= 0 + //add_cone_from_cut(solver, cut); +} + +void CglConicGD1::add_cone_from_cut(OsiConicSolverInterface & si, + CglConicGD1Cut const * cut, + int cut_cone_index) { + // cut is Ax - b in L + // or Ax - y = b, y in L in standard form. + + // x is given by the cut_cone_index. + // x is members of the cone with the index cut_cone_index. + // y is a new variable that will be introduced to the problem. + // + + OsiLorentzConeType type; + int cone_size; + int * members; + si.getConicConstraint(cut_cone_index, type, cone_size, members); + if (type!=OSI_QUAD) { + std::cout << "Lorentz cones only!." << std::endl; throw std::exception(); } -} -void CglConicGD1::add_cone_form_cut(OsiConicSolverInterface * solver, - CglConicGD1Cut * cut) { - int * members = cut->getMembers(); + int num_orig_rows = si.getNumRows(); + int num_orig_cols = si.getNumCols(); + + double const * cutA = cut->getCutA(); + double const * cutb = cut->getCutb(); + int num_cut_rows = cut->getNumRows(); - // num_cut_rows is same as cut cone size + // num_cut_cols is same as size of cut cone int num_cut_cols = cut->getNumCols(); - double const * newMatA = cut->getNewMatA(); - double const * newRhs = cut->getNewRhs(); - int num_orig_rows = solver->getNumRows(); - int num_orig_cols = solver->getNumCols(); - // add Ax - y = b and y \in L to the model. x is old variable. - // y is new variable. - // add rows Ax = b first. - double * val = new double[num_cut_cols]; - // for each row of A - for (int i=0; iaddRow(num_cut_cols, members, val, newRhs[i], newRhs[i]); + + if (cone_size != num_cut_cols) { + std::cerr << "Starting cone size should be same as " + "number of columns in the cut." << std::endl; + throw std::exception(); } - delete[] val; - // add columns Ay to rows Ix = b. - // add columns -y to rows Ax = b. - int * ind = new int[1]; - val = new double[1]; - val[0] = -1.0; - for (int i=0; iaddCol(1, ind, val, -solver->getInfinity(), - solver->getInfinity(), 0.0); + + // check whether cut is linear + if (num_cut_rows == 1) { + // add Ax >= b + si.addRow(num_cut_cols, members, cutA, cutb[0], si.getInfinity()); + delete[] members; + return; } - delete[] ind; - delete[] val; - // add cone y in L. Leading variable may not be y_1. - if (num_cut_rows==1) { - solver->setColLower(num_orig_cols, 0.0); + + + // add Ax - y = b to the model + { + // add rows Ax = b first. + double * val = new double[num_cut_cols]; + // for each row of A + for (int i=0; iaddConicConstraint(type, num_cut_rows, cone_ind); + si.addConicConstraint(type, num_cut_rows, cone_ind); delete[] cone_ind; } + delete[] members; } void CglConicGD1::get_rows(OsiConicSolverInterface const & si, @@ -423,7 +528,7 @@ std::vector > CglConicGD1::compute_dis_var_cone( } delete[] cone_types; if (candidates.empty()) { - std::cerr << "Could not find a suitable variable to create disjunction!" + std::cout << "Could not find a suitable variable to create disjunction!" << std::endl; //throw std::exception(); return candidates; @@ -433,5 +538,67 @@ std::vector > CglConicGD1::compute_dis_var_cone( } } -void CglConicGD1::print_cut(CglConicGD1Cut * cut) const { + +void CglConicGD1::print_cut(CglConicGD1Cut const * cut) const { +} + + + + + +OsiConicSolverInterface * CglConicGD1::generateAndAddCuts( + OsiConicSolverInterface const & si, + std::vector AA, + std::vector bb) { + return NULL; +} + +OsiConicSolverInterface * CglConicGD1::generateAndAddBestCut( + OsiConicSolverInterface const & si, + std::vector AA, + std::vector bb) { + return NULL; +} + + +// get cone in Ax=b and x in L form +void CglConicGD1::get_input_set(OsiConicSolverInterface const * solver, + int dis_var, + int cut_cone, + int num_eq_rows, + int const * rows, + CoinPackedMatrix *& A, + double *& b, + double *& sol, + int & rel_dis_var) const { + CoinPackedMatrix const * matrix = solver->getMatrixByRow(); + OsiLorentzConeType type; + int csize; + int * cmembers = NULL; + solver->getConicConstraint(cut_cone, type, csize, cmembers); + if (type != OSI_QUAD) { + delete[] cmembers; + std::cerr << "Not implemented yet. Only Lorentz cones for now." << std::endl; + throw std::exception(); + } + A = new CoinPackedMatrix(*matrix, num_eq_rows, rows, csize, cmembers); + // get b + b = new double[num_eq_rows]; + double const * full_b = solver->getRowLower(); + for (int i=0; igetColSolution(); + for (int i=0; i -// generates and adds cuts to solver_ +/// generates and adds cuts to solver_ class CglConicGD1: public CglConicCutGenerator { CglConicGD1Param * param_; + CglConicGD1Cut * ccut_; int num_cuts_; std::vector cuts_; + std::vector cuts_cone_ind_; // get equality constraints the cut cone members are in // get Ax=b void get_rows(OsiConicSolverInterface const & si, int cut_cone, int & num_eq_rows, int *& rows) const; - void add_cut(OsiConicSolverInterface * solver, CglConicGD1Cut * cut); + void add_cut(OsiConicSolverInterface * solver, CglConicGD1Cut const * cut); // adds generated cuts to the model. void add_cuts(OsiConicSolverInterface * solver); // frees memory @@ -37,9 +40,20 @@ class CglConicGD1: public CglConicCutGenerator { // compute disjunction var and the cone var is in. std::vector > compute_dis_var_cone( OsiConicSolverInterface const & si) const; - void add_cone_form_cut(OsiConicSolverInterface * solver, - CglConicGD1Cut * cut); - void print_cut(CglConicGD1Cut * cut) const; + void add_cone_from_cut(OsiConicSolverInterface & solver, + CglConicGD1Cut const * cut, + int cut_cone_index); + void print_cut(CglConicGD1Cut const * cut) const; + void get_input_set(OsiConicSolverInterface const * solver, + int dis_var, + int cut_cone, + int num_eq_rows, + int const * rows, + CoinPackedMatrix *& A, + double *& b, + double *& sol, + int & rel_dis_var) const; + public: // default constructor CglConicGD1(OsiConicSolverInterface * solver); @@ -63,12 +77,21 @@ class CglConicGD1: public CglConicCutGenerator { virtual CglConicCutGenerator * clone() const; /// Create C++ lines to get to current state virtual std::string generateCpp( FILE * fp); - // generate and add cuts, return conic interface + // generate and add cuts, return conic interface, primal form OsiConicSolverInterface * generateAndAddCuts(OsiConicSolverInterface const & si, const CglTreeInfo info = CglTreeInfo()); OsiConicSolverInterface * generateAndAddBestCut( OsiConicSolverInterface const & si, const CglTreeInfo info = CglTreeInfo()); + // generate and add cuts, return conic interface, dual form + OsiConicSolverInterface * generateAndAddCuts( + OsiConicSolverInterface const & si, + std::vector AA, + std::vector bb); + OsiConicSolverInterface * generateAndAddBestCut( + OsiConicSolverInterface const & si, + std::vector AA, + std::vector bb); int getNumCutsAdded() const; }; diff --git a/src/CglConicGD1/CglConicGD1Cut.cpp b/src/CglConicGD1/CglConicGD1Cut.cpp index 20789c7..08b03ee 100644 --- a/src/CglConicGD1/CglConicGD1Cut.cpp +++ b/src/CglConicGD1/CglConicGD1Cut.cpp @@ -1,19 +1,24 @@ #include "CglConicGD1Cut.hpp" #include +#include extern "C" { - #include + // blas routines + void dcopy_(int*, double*, int*, double*, int*); + void dgemv_(char*, int*, int*, double*, double*, int*, double*, int*, + double*, double*, int*); + void dgemm_(char*, char*, int*, int*, int*, double*, double*, int*, + double*, int*, double*, double*, int*); + void dsyrk_(char*, char*, int*, int*, double*, double*, int*, double*, + double*, int*); + void dsyr_(char*, int*, double*, double*, int*, double*, int*); + double ddot_(int*, double*, int*, double*, int*); + void daxpy_(int*, double*, double*, int*, double*, int*); + // lapack routines - void dgels_(char *trans, int *m, int *n, int *nrhs, - double *A, int *lda, double *b, int *ldb, - double *work, int *lwork, int *info); void dsysv_(char *uplo, int *n, int *nrhs, double *a, int *lda, int * ipiv, double *b, int * ldb, double * work, int *lwork, int * info); - void dposv_(char *uplo, int *n, int *nrhs, double *a, - int *lda, double *b, int *ldb, int *info); - void dpotrs_(char *uplo, int *n, int *nrhs, double *a, - int *lda, double *b, int *ldb, int *info); void dsyev_(char *jobz, char *uplo, int *n, double *a, int *lda, double *w, double *work, int *lwork, int *info); @@ -23,6 +28,7 @@ extern "C" { int *lwork, int *info); } + #define EPS 1e-4 // helper functions which are not class members @@ -36,155 +42,247 @@ static double quad_formula(double quad_term, double lin_term, static void roots(double a, double b, double c, double & root1, double & root2); -CglConicGD1Cut::CglConicGD1Cut(OsiConicSolverInterface const * solver, - int num_rows, int * rows, - int cut_cone, int dis_var) -: solver_(solver) { - num_rows_ = num_rows; - dis_var_ = dis_var; - rows_ = new int[num_rows]; - std::copy(rows, rows+num_rows, rows_); - cindex_ = cut_cone; - // set arrays to 0 - matA_ = 0; - matH_ = 0; - matV_ = 0; - matQ_ = 0; - vecq_ = 0; - eigQ_ = 0; - vecx0_ = 0; - a_ = 0; - cmembers_ = 0; - cone_members_ = 0; - Jtilde_ = 0; - rho_tilde_ = 0; - new_matA_ = 0; - new_rhs_ = 0; - cut_type_ = 1; - dirTestU_ = 0; - dirTestV_ = 0; - vecq_tau_ = 0; - rho_tau_ = 0; - matQ_tau_ = 0; - linear_cut_ind_ = 0; - linear_cut_coef_ = 0; - // fill csize_, cmembers_, cone_members_, ctype_, lctype_, - solver_->getConicConstraint(cut_cone, lctype_, csize_, cmembers_); - ctype_ = OSI_LORENTZ; - int num_cols = solver->getNumCols(); - cone_members_ = new int[num_cols](); - for (int i=0; i=csize_) { - valid_ = false; - return; +CglConicGD1Cut::CglConicGD1Cut(CglConicInputType input_type, + CoinPackedMatrix const * A, double const * b, + double const * x0) : + input_type_(input_type) { + // if input_type is DUAL_FORM, just ignore x0. + matA_num_rows_ = A->getNumRows(); + matA_num_cols_ = A->getNumCols(); + int m = matA_num_rows_; + int n = matA_num_cols_; + // get A in dense col ordered form. + matA_ = new double[n*m](); + bool col_ordered = A->isColOrdered(); + int major_dim = A->getMajorDim(); + int minor_dim = A->getMinorDim(); + for (int i=0; igetVectorFirst(i); + int size = A->getVectorSize(i); + int const * ind = A->getIndices() + first; + double const * val = A->getElements() + first; + for (int j=0; jgetColSolution()[dis_var_]); - double beta = alpha+1.0; - // create coefficient matrix - disjunction_ = new Disjunction(csize_, a, alpha, a, beta); - delete[] a; + +CglConicGD1Cut::CglConicGD1Cut(int n, double const * Q, + double const * q, double rho) + : input_type_(QUAD_FORM) { } -void CglConicGD1Cut::generate_cut() { - valid_ = true; - compute_matrixA(); +void CglConicGD1Cut::compute_quadratic() { + if (input_type_ == PRIMAL_FORM) { + quad_num_cols_ = matA_num_cols_ - matA_num_rows_; + } + else { + quad_num_cols_ = matA_num_cols_; + } compute_matrixH(); compute_matrixQ(); compute_vectorq(); compute_rho(); - classify_quadric(); - // compute tau value that yields a cone - compute_tau(); - if (valid_==false) { +} + +// compute matrix H from matrix A, H is null mat of A. +void CglConicGD1Cut::compute_matrixH() { + if (input_type_ == DUAL_FORM) { + matH_ = matA_; return; } - if (cut_type_==2 || cut_type_==3) { - // only one disjunction hyperplane intersects with quadric - // which makes the following computations of this function - // irrelevant - return; + int num_cols = matA_num_cols_; + int num_rows = matA_num_rows_; + // copy A to a working array + double * tempA = new double[num_cols*num_rows]; + int blas_nm = num_cols*num_rows; + int blas_one = 1; + dcopy_(&blas_nm, matA_, &blas_one, tempA, &blas_one); + // right hand side singular vectors of A + double * VT = new double[num_cols*num_cols]; + svDecompICL(num_rows, num_cols, tempA, VT); + matH_ = new double[(num_cols-num_rows)*num_cols](); + // Take the last n-m columns of V, lapack returns V^T + for(int i=0; i<(num_cols-num_rows); ++i) { + dcopy_(&num_cols, (VT+num_rows+i), &num_cols, (matH_+i*num_cols), &blas_one); } - if (valid_ and infeasible_) { - // problem is infeasible - return; + delete[] tempA; + delete[] VT; + //print_matrix(1, num_cols, num_cols-num_rows, matH_, "H"); +} + +// negate first row of H. Multiply H^T with this matrix. + +// todo(aykut) matH_ is stored as row major in the memory. It should be col +// ordered. + +// A is col ordered and H is row oredered, in dual form we point H to A, this +// will create problems. + +void CglConicGD1Cut::compute_matrixQ() { + // number of rows of matrix H + int m; + // number of columns of matrix H + int n; + if (input_type_ == PRIMAL_FORM) { + m = matA_num_cols_; + n = matA_num_cols_ - matA_num_rows_; } - // compute rho(tau), rho_tau_ - compute_rho_tau(); - // compute q(tau), q_tau_ - compute_q_tau(); - // compute Q(tau), Q_tau_ - compute_Q_tau(); - // compute matrix as a part of the cut to add to model - compute_new_A(); - // compute right-hand-side that corresponds to NewA - //compute_new_rhs(); + else { + m = matA_num_rows_; + n = matA_num_cols_; + } + matQ_ = new double[n*n](); + // Temporary array, stores the first row of H + double * d = new double[n]; + int blas_one = 1; + int blas_mm1 = m-1; + dcopy_(&n, matH_, &m, d, &blas_one); + // Temporary array, exlcudes the first row of H + double * A = new double[(m-1)*n]; + for(int i=0; igetColSolution(); - for (int i=0; i epair; for (int i=0; ivalue_ = eigQ_[i]; + curr->value_ = matD_[i]; curr->vector_ = matV_ + i*n; epair.push_back(curr); } // sort eigenvalue eigenvector pairs std::sort(epair.begin(), epair.end(), EigenLess()); - // restore eigQ_ and matV_ - double * newMatV_ = new double[n*n]; + // restore matD_ and matV_ + double * newMatV = new double[n*n]; std::vector::const_iterator it; int k=0; for (it=epair.begin(); it!=epair.end(); ++it) { - eigQ_[k] = (*it)->value_; - std::copy((*it)->vector_, (*it)->vector_+n, newMatV_+k*n); + matD_[k] = (*it)->value_; + std::copy((*it)->vector_, (*it)->vector_+n, newMatV+k*n); k++; } delete[] matV_; - matV_ = newMatV_; - newMatV_ = NULL; + matV_ = newMatV; + newMatV = NULL; // free epair std::vector::iterator iit; @@ -219,248 +317,302 @@ void CglConicGD1Cut::classify_quadric() { delete *iit; } epair.clear(); - //print_vector(n, eigQ_, "eigQ_"); - //print_matrix(1, n, n, matV_, "matV_"); + //print_matrix(1, n, n, matV_, "V"); + //print_vector(n, matD_, "D"); } -void CglConicGD1Cut::compute_matrixA() { - // we assume cmembers_ and rows_ are ordered. - // matA_ has num_rows_ many rows and csize_ many columns. - // matA_ is column ordered - matA_ = new double[num_rows_*csize_](); - // rows_ stores the indices of the picked rows of constraint matrix - // cmembers_ stores the indices of the picked rows of constraint matrix - int nc = solver_->getNumCols(); - int nr = solver_->getNumRows(); - int * row_members = new int[nr](); - for (int i=0; igetMatrixByCol(); - int const * indices = mat->getIndices(); - double const * elements = mat->getElements(); - // reduced row index - int rri = 0; - // reduced column index - int rci = 0; - for (int i=0; igetCoefficient(j,i); - rri++; - } - } - rri = 0; - rci++; - } +void CglConicGD1Cut::generateCut(int dis_index, double alpha, double beta) { + dis_index_ = dis_index; + alpha_ = alpha; + beta_ = beta; + // compute disjunction + // compute tau + compute_tau(); + if (infeasible_) { + // computing tau revealed that problem is infeasible, i.e. intersection of + // input set with disjunctive half spaces is empty. + return; + } + if (!success_) { + // computing tau failed. tau might be close to -1. + return; + } + if (cutA_num_rows_==1) { + // only one of the disjunctive hyperplane intersects input set, + // cut is linear and already computed. + return; } - delete[] row_members; + // tau computed successfully + compute_disjunction_in_w(); + compute_Q_tau(); + compute_q_tau(); + compute_rho_tau(); + decompose_matrixQtau(); + compute_cut(); } -// compute matrix H from matrix A, H is null mat of A. -void CglConicGD1Cut::compute_matrixH() { - int num_cols = csize_; - //Copy A to a working array - double * tempA = new double[num_cols*num_rows_]; - cblas_dcopy(num_cols*num_rows_, matA_, 1, tempA, 1); - //Right hand side singular vectors of A - double * VT = new double[num_cols*num_cols]; - svDecompICL(num_rows_, num_cols, tempA, VT); - matH_ = new double[(num_cols-num_rows_)*num_cols](); - // Take the last n-m columns of V, lapack returns V^T - for(int i=0; i<(num_cols-num_rows_); ++i) { - //cblas_dcopy(num_cols, (VT + num_rows_ + i), num_cols, (matH_+i*num_cols), 1); - cblas_dcopy(num_cols, (VT+num_rows_+i), num_cols, (matH_+i*num_cols), 1); +void CglConicGD1Cut::compute_disjunction_in_w() { + int n; + int m; + if (input_type_ == PRIMAL_FORM) { + m = matA_num_cols_; + n = matA_num_cols_ - matA_num_rows_; + } + else { + m = matA_num_rows_; + n = matA_num_cols_; + } + dis_coef_in_w_ = new double[n](); + if (input_type_ == PRIMAL_FORM) { + for (int i=0; igetNumCols(); - // negate first row of H. Multiply H^T with this matrix. - // matH_ is stored as row major in the memory. - // it should be col ordered - int m = csize_; - int n = m-num_rows_; - matQ_ = new double[n*n](); - // Temporary array, stores the first row of H - double * d = new double[n]; - cblas_dcopy(n, matH_, m, d, 1); - // Temporary array, exlcudes the first row of H - double * A = new double[(m-1)*n]; - for(int i=0; iget_c1(); - double norm_of_q = cblas_dnrm2(n, vecq_, 1); - cblas_dgemv(CblasColMajor, CblasTrans, m, n, norm_of_q, - matH_, m, c, 1, 0.0, a_, 1); - // normalize a - double norm_of_a = cblas_dnrm2(n, a_, 1); - cblas_dscal(n, 1.0/norm_of_a, a_, 1); - //print_vector(n, a_, "normalized a"); + //print_vector(n, dis_coef, "unscaled a"); - // compute alpha_ and beta_ in regularized space - { - double cTx0 = vecx0_[rel_dis_var_]; - double * Hq = new double[m](); - cblas_dgemv(CblasColMajor, CblasNoTrans, m, n, 1.0, - matH_, m, vecq_, 1, 0.0, Hq, 1); - //print_vector(m, Hq, "Hq"); - double cTHq = Hq[rel_dis_var_]; - alpha_ = floor(vecx0_[rel_dis_var_]) - cTx0 + cTHq; - alpha_ = alpha_/norm_of_a; - beta_ = ceil(vecx0_[rel_dis_var_]) - cTx0 + cTHq; - beta_ = beta_/norm_of_a; - delete[] Hq; - //print_scalar(alpha_, "alpha normalized"); - //print_scalar(beta_, "beta normalized"); - } - - // == check whether the disjunctive hyperplane (transfered into the - // regularized space) intersects with the quadric in the regularized space - { - bool alpha_intersects = (alpha_*alpha_ <= 1); - bool beta_intersects = (beta_*beta_ <= 1); - if (alpha_intersects && beta_intersects) { - // both hyperplanes intersects regularized quadric - // cool, keep working on it. - } - else if (alpha_intersects) { - // only ax=alpha intersects quadric - // hand linear cut ax <= alpha to solver. - valid_ = true; - cut_type_ = 3; - linear_cut_ind_ = new int[1]; - linear_cut_ind_[0] = dis_var_; - linear_cut_coef_ = new double[1]; - linear_cut_coef_[0] = 1.0; - linear_cut_rhs_ = ceil(disjunction_->get_c10()); - return; - } - else if(beta_intersects) { - // only ax=beta intersects quadric - // hand linear cut ax >= beta to solver. - - valid_ = true; - cut_type_ = 2; - linear_cut_ind_ = new int[1]; - linear_cut_ind_[0] = dis_var_; - linear_cut_coef_ = new double[1]; - linear_cut_coef_[0] = 1.0; - linear_cut_rhs_ = floor(disjunction_->get_c20()); - return; - } - else { - // none of the hyperplanes intersect the quadric, problem is infeasible. - valid_ = true; - infeasible_ = true; - } + for (int i=0; i -1.1) { + // numerical problems might arise when tau is greater than -1.1. + // abort. + success_ = false; + } + else { + success_ = true; + } } //print_scalar(tau_, "tau"); - if (tau_ > -1.1) { - valid_ = false; - } + delete[] aH; + delete[] dis_coef; } // compute rho(tau), rho_tau_ void CglConicGD1Cut::compute_rho_tau() { - rho_tau_ += tau_*alpha_*beta_; - //print_scalar(rho_tau_, "rho_tau"); + rho_tau_ += tau_*alpha_in_w_*beta_in_w_; + //print_scalar(rho_tau_, "rho(tau)"); } - // compute q(tau), q_tau_ +// compute q(tau), q_tau_ void CglConicGD1Cut::compute_q_tau() { - int n = csize_-num_rows_; + // number of columns of matrix H + int n; + if (input_type_ == PRIMAL_FORM) { + n = matA_num_cols_ - matA_num_rows_; + } + else { + n = matA_num_cols_; + } vecq_tau_ = new double[n](); std::copy(vecq_, vecq_+n, vecq_tau_); - double aux = -0.5*tau_*(alpha_ + beta_); - cblas_daxpy(n, aux, a_, 1, vecq_tau_, 1); + double aux = -0.5*tau_*(alpha_in_w_ + beta_in_w_); + int blas_one = 1; + daxpy_(&n, &aux, dis_coef_in_w_, &blas_one, vecq_tau_, &blas_one); //print_vector(n, vecq_tau_, "q(tau)"); } // compute Q(tau), Q_tau_ void CglConicGD1Cut::compute_Q_tau() { - int m = csize_; - int n = m-num_rows_; + // number of rows of matrix H + int m; + // number of columns of matrix H + int n; + if (input_type_ == PRIMAL_FORM) { + m = matA_num_cols_; + n = matA_num_cols_ - matA_num_rows_; + } + else { + m = matA_num_rows_; + n = matA_num_cols_; + } matQ_tau_ = new double[n*n]; - cblas_dcopy(n*n, matQ_, 1, matQ_tau_, 1); - cblas_dsyr(CblasColMajor, CblasUpper, n, tau_, a_, 1, - matQ_tau_, n); + int blas_n_sqr = n*n; + int blas_one = 1; + dcopy_(&blas_n_sqr, matQ_, &blas_one, matQ_tau_, &blas_one); + char blas_upper = 'U'; + dsyr_(&blas_upper, &n, &tau_, dis_coef_in_w_, &blas_one, + matQ_tau_, &n); // copy upper triangular to lower triangular part // for each column for (int i=0; i-0.001) { - delete[] Vtau; - delete[] eigQtau; - valid_ = false; - return; + if (matD_tau_[i]<0.001 && matD_tau_[i]>-0.001) { + std::cout << "Zero eigenvalue in $Q(\tau)$." << std::endl; + success_ = false; } } @@ -497,262 +657,146 @@ void CglConicGD1Cut::compute_new_A() { { int num_neg_eigen = 0; for (int i=0; i1) { std::cerr << "Number of negative eigenvalues should be at most 1!" << std::endl; - delete[] Vtau; - delete[] eigQtau; - valid_ = false; + success_ = false; return; } } + // push eigenvalue--eigenvector pairs into vector + std::vector epair; + for (int i=0; ivalue_ = matD_tau_[i]; + curr->vector_ = matV_tau_ + i*n; + epair.push_back(curr); + } + // sort eigenvalue eigenvector pairs + std::sort(epair.begin(), epair.end(), EigenLess()); + + // restore matD_tau_ and matV_tau_ + double * newMatV = new double[n*n]; + std::vector::const_iterator it; + int k=0; + for (it=epair.begin(); it!=epair.end(); ++it) { + matD_tau_[k] = (*it)->value_; + std::copy((*it)->vector_, (*it)->vector_+n, newMatV+k*n); + k++; + } + delete[] matV_tau_; + matV_tau_ = newMatV; + newMatV = NULL; + + //print_matrix(1, n, n, matV_tau_, "V(tau)"); + //print_vector(n, matD_tau_, "D(tau)"); + + // free epair + std::vector::iterator iit; + for (iit=epair.begin(); iit!=epair.end(); ++iit) { + delete *iit; + } + epair.clear(); +} + +// compute matrix as a part of the cut to add to model +void CglConicGD1Cut::compute_cut() { + // number of rows of matrix H + int m; + // number of columns of matrix H + int n; + if (input_type_ == PRIMAL_FORM) { + m = matA_num_cols_; + n = matA_num_cols_ - matA_num_rows_; + } + else { + m = matA_num_rows_; + n = matA_num_cols_; + } + cutA_num_rows_ = n; + cutA_num_cols_ = m; + + // cut is V(tau) Dtilde(tau) ^{1/2} (H^\top (x-x0) + wbar_tau) + // compute Dtilde^{1/2} double * sqrtDtau = new double[n*n](); for (int i=0; i0) { - // negate first row of A - for (int i=0; i 0.0 then cutA_1 = -cutA_1 and cutb[0] = -cutb[0] + // first column of sqrtQtau times (-wbar + wbar_tau) + double branch = 0.0; -// compute right-hand-side that corresponds to NewA -void CglConicGD1Cut::compute_new_rhs() { - int m = csize_; - int n = m-num_rows_; - int * ipiv = new int[n](); - double * aux = new double[n]; - cblas_dcopy(n, vecq_tau_, 1, aux, 1); - new_rhs_ = new double[m](); - char uplo = 'U'; - int nrhs = 1; - double * L = new double[n*n]; - double worksize; - int lwork = -1; - int info; - cblas_dcopy(n*n, matQ_tau_, 1, L, 1); - dsysv_(&uplo, &n, &nrhs, L, &n, ipiv, aux, &n, - &worksize, &lwork, &info); - lwork = (int) worksize; - double * work = new double[lwork]; - dsysv_(&uplo, &n, &nrhs, L, &n, ipiv, aux, &n, - work, &lwork, &info); - if (cut_type_>0) { - cblas_daxpy(n, 1.0, aux, 1, dirTestV_, 1); - double dirtest; - if (dirTestU_) { - dirtest = cblas_ddot(n, dirTestV_, 1, dirTestU_, 1); - } - else { - dirtest = cblas_ddot(n, dirTestV_, 1, dirTestV_, 1); - } - if(dirtest < -EPS){ - for(int i=0; iaddCone(elliDim_, csub); -// //printf("A conic cut added \n"); -// } -// } - -bool CglConicGD1Cut::valid() const { - return valid_; +bool CglConicGD1Cut::success() const { + return success_; } bool CglConicGD1Cut::infeasible() const { @@ -762,41 +806,23 @@ bool CglConicGD1Cut::infeasible() const { // number of rows of the linear part of the cut // ie num of rows of the new A matrix. int CglConicGD1Cut::getNumRows() const { - return csize_ - num_rows_; + return cutA_num_rows_; } // number of columns in the cut int CglConicGD1Cut::getNumCols() const { - return csize_; -} - -// get variables in the cut -int * CglConicGD1Cut::getMembers() const { - return cmembers_; -} - -int CglConicGD1Cut::cutType() const { - return cut_type_; -} - -// todo(aykut) this is irrelevant since the var head is always the first -// cone member -int CglConicGD1Cut::getVarHead() const { - return varHead_; + return cutA_num_cols_; } CglConicGD1Cut::~CglConicGD1Cut() { - if (rows_) { - delete[] rows_; + if (vecx0_) { + delete[] vecx0_; } if (matA_) { delete[] matA_; } - if (matH_) { - delete[] matH_; - } - if (matV_) { - delete[] matV_; + if (vecb_) { + delete[] vecb_; } if (matQ_) { delete[] matQ_; @@ -804,82 +830,55 @@ CglConicGD1Cut::~CglConicGD1Cut() { if (vecq_) { delete[] vecq_; } - if (eigQ_) { - delete[] eigQ_; + if (wbar_) { + delete[] wbar_; + } + if (matV_) { + delete[] matV_; + } + if (matD_) { + delete[] matD_; } - if (a_) { - delete[] a_; + if (dis_coef_in_w_) { + delete[] dis_coef_in_w_; } - if (cmembers_) - delete[] cmembers_; - if (cone_members_) - delete[] cone_members_; - if (Jtilde_) + if (Jtilde_) { delete[] Jtilde_; - if (vecx0_) - delete[] vecx0_; - if (matQ_tau_) + } + if (matQ_tau_) { delete[] matQ_tau_; - if (vecq_tau_) + } + if (vecq_tau_) { delete[] vecq_tau_; - if (new_matA_) - delete[] new_matA_; - if (new_rhs_) - delete[] new_rhs_; - if (dirTestU_) - delete[] dirTestU_; - if (dirTestV_) - delete[] dirTestV_; - if (linear_cut_ind_) - delete[] linear_cut_ind_; - if (linear_cut_coef_) - delete[] linear_cut_coef_; -} - -// return linear part of the cut, constraint matrix. -double const * CglConicGD1Cut::getNewMatA() const { - return new_matA_; -} - -// return right hand side of the linear part of the cut. -double const * CglConicGD1Cut::getNewRhs() const { - return new_rhs_; -} - -// get the variables in the cut if cut is in linear form -int const * CglConicGD1Cut::linear_cut_ind() const { - if (cut_type_!=2 && cut_type_!=3) { - std::cerr << "Cut is not in linear form!" << std::endl; - throw std::exception(); } - return linear_cut_ind_; -} - -// get the coefficients of the cut if cut is in linear form -double const * CglConicGD1Cut::linear_cut_coef() const { - if (cut_type_!=2 && cut_type_!=3) { - std::cerr << "Cut is not in linear form!" << std::endl; - throw std::exception(); + if (wbar_tau_) { + delete[] wbar_tau_; + } + if (matV_tau_) { + delete[] matV_tau_; + } + if (matD_tau_) { + delete[] matD_tau_; + } + if (cutA_) { + delete[] cutA_; + } + if (cutb_) { + delete[] cutb_; + } + if (matH_) { + delete[] matH_; } - return linear_cut_coef_; } -// get the rhs of the cut if the cut is in linear form -double CglConicGD1Cut::linear_cut_rhs() const { - if (cut_type_!=2 && cut_type_!=3) { - std::cerr << "Cut is not in linear form!" << std::endl; - throw std::exception(); - } - return linear_cut_rhs_; +// return linear part of the cut, constraint matrix. +double const * CglConicGD1Cut::getCutA() const { + return cutA_; } -// get the size of the cut if the cut is in the linear form -int CglConicGD1Cut::linear_cut_size() const { - if (cut_type_!=2 && cut_type_!=3) { - std::cerr << "Cut is not in linear form!" << std::endl; - throw std::exception(); - } - return 1; +// return right hand side of the linear part of the cut. +double const * CglConicGD1Cut::getCutb() const { + return cutb_; } /////////////////////////////////////////////////////////////////////////////// @@ -1049,10 +1048,8 @@ void CglConicGD1Cut::print_scalar(double value, char const * name) const { } void CglConicGD1Cut::print_cut() const { - if (new_matA_==NULL or new_rhs_==NULL) { - return; + if (cutA_ && cutb_) { + print_matrix(1, cutA_num_rows_, cutA_num_cols_, cutA_, "cutA"); + print_vector(cutA_num_rows_, cutb_, "cutb"); } - print_matrix(1, csize_-num_rows_, csize_, new_matA_, - "cut coefficient matrix"); - print_vector(csize_-num_rows_, new_rhs_, "cut rhs"); } diff --git a/src/CglConicGD1/CglConicGD1Cut.hpp b/src/CglConicGD1/CglConicGD1Cut.hpp index 87bf495..8bdcb8e 100644 --- a/src/CglConicGD1/CglConicGD1Cut.hpp +++ b/src/CglConicGD1/CglConicGD1Cut.hpp @@ -1,25 +1,77 @@ -#include +#ifndef CglConicGD1Cut_H +#define CglConicGD1Cut_H + #include "CglConicCutGenerator.hpp" + +///@file + /*! + Input set form. Primal form denotes input set is + \f$ Ax = b, x \in \mathbb{L} \f$ form, whereas dual is + \f$ x^\top Q x + 2 q^\top x + \rho \leq 0 \f$. +**/ + +enum CglConicInputType { + PRIMAL_FORM = 0, + DUAL_FORM, + QUAD_FORM +}; + +/*! + Class to represent a conic cut of Belotti et. al. introduced in [1] and [2]. - Typical use of this class: - Generate an instance with the proper inputs (conic problem, rows and disjunction - cone and variable index). This constructor will generate the cut and store - it. Then CglConicGD1 has a method to add this cut to a OsiConicSolverInterface. + # How to Use #CglConicGD1Cut - Moreover this class provides functions to querry the generated cut. + Purpose of this class is to compute disjunctive cuts for convex conic sets + (sets represented by linear and conic constraints, they are not necessarily + cones, might be ellipsoids). Inputs to this class can be in three forms, - This procedure works for un-rotated Lorentz cones only for now. +
    +
  • Primal form, \f$ Ax = b, x \in \mathbb{L}\f$, +
  • Dual form, \f$ \|Ax - b\| \leq d^\top x - \gamma \f$, +
  • Quadratic form, \f$ x^\top Q x + 2q^\top x + \rho \leq 0\f$. +
+ + Primal form can be converted to quadratic form using a basis for the null + space of matrix \f$A\f$. See the Belotti et. al. papers for details. A linear + transformation can map the primal form (in x-space) to a dual form in a + different space (will be referred as w-space). Conversion between dual form + and quadratic form does not need a mapping. Quadratic form can be obtained by + algebraic manipulation of the dual form. Finally, note that not every + quadratic formula leads to conic representable set. This class assumes the + set corresponding to the input quadratic is conic representable. + + All of the inputs are mapped/converted to a quadratic representation in + w-space. Cut is computed in w-space in quadratic form then converted to dual + form for user. User can convert the cut to the primal form or quadratic form + if she desires (both easy to do, no need for eigenvalue decomposition, null + space computation etc). + + Typical use of this class: + + // generate cut instance + // initiate cut generation by providing a disjunction + // get resulting cut + // check feasibility of the problem + // check whether cut is linear + // generate another cut from a different disjunction - == Theoretical details in Cut generation == + Intermediate computations (mapping input conic set to its quadratic + representation in dual space in case of non-quadratic inputs, eigenvalue + decomposition of matrix \f$Q\f$ of quadratic form) are chached for next cut + generation calls for a different disjunction. + + # Theoretical details in Cut generation Cut generation happens in 3 different spaces. +
    -
  • Primal space where the feasible region (i.e., \f$Ax = b\f$, \f$x in - L\f$) is. +
  • Primal space where the feasible region (i.e., \f$Ax = b\f$, \f$x \in + \mathbb{L}\f$) is in. Cones are in this form in OsiConicSolverInterface instances in + CglConicGD1 level.
  • Dual space, where the feasible region is represented in quadratic form, i.e. \f$ w^\top Q w + 2q^\top w + \rho \leq 0\f$, this space is @@ -32,41 +84,196 @@ space will be referred as u-space (u-space since the equations are functions of \f$u\f$ in the Belotti et. al. paper.) - === Generation of the Cut === +
+ + ## Transformations between different spaces + + Conic input in primal form can be represented in w-space as a quadratic as + follows, + + \f$ w^\top Q w + 2q^\top w + \rho \leq 0\f$, + + where, \f$ Q := H^\top J H\f$, \f$q := H^\top J x^0\f$, \f$\rho := x^{0T} J + x^{0}\f$, columns of \f$H\f$ form an orthonormal basis for \f$A\f$ and + \f$J\f$ is identity except \f$J(1,1)\f$ is \f$-1\f$. + + Whereas, conic input set in dual form (\f$Ax-b \in \mathbb{L}\f$) can be + represented as a quadratic in the same space of input as follows, + + \f$ x^\top Q x + 2q^\top x + \rho \leq 0\f$, + + where, \f$ Q := A^\top J A\f$, \f$q := -A^\top J b \f$, \f$ \rho := b^\top J + b \f$. Note that this is the same representation in case of \f$H \leftarrow + A\f$ and \f$x^0 \leftarrow -b\f$. A subtle difference is columns of \f$A\f$ are + not orthonormal. + + We refer to the primal space as x space and dual space as w space (where + cones can be represented as quadratics). There is another space that we will + refer as u-space. This space is where quadratics can be + represented/regularized as a sphere (when \f$Q\f$ is postive semidefinite and + there exists an \f$\overline{w}\f$ s.t. \f$Q\overline{w} = q\f$ and \f$ q^\top + \overline{w} - \rho > 0\f$) or Lorentz cone (when \f$Q\f$ has exactly 1 + negative eigenvalue and there exists an \f$\overline{w}\f$ s.t. + \f$Q\overline{w} = q\f$ and \f$ q^\top \overline{w} - \rho = 0\f$). We will + give explicit formula of the linear transformation that maps a quadratic set + (that satisfies the contions above) to a sphere or Lorentz cone. + + The cut is generated in the u-space and then represented in (or transformed + into) the x-space for primal case or w-space for dual case (i.e., space of + the input conic set). To do these transformations one must understand the + relationship (linear transformations) between (1) \f$x\f$ and \f$w\f$ and (2) + \f$w\f$ and \f$u\f$. Transformation between \f$x\f$ and \f$w\f$ is as + follows, + + \f$ x = x^0 + Hw\f$ and \f$w = H^\top x - H^\top x^0\f$ + + where \f$x^0\f$ is a point that satisfies \f$Ax=b\f$, and columns of \f$H\f$ + are an orthonormal basis for the null space of \f$A\f$. + + Relationship between \f$w\f$ and \f$u\f$ is not unique and depends on the + input set. Let $(Q,q,\rho)$ be the quadratic representation of the input + set. Then we are interested in the following cases only, + +
    + +
  • \f$Q\f$ is positive semidefinite and there exists an + \f$\overline{w}\f$ s.t. \f$Q\overline{w} = q\f$ and \f$ q^\top + \overline{w} - \rho > 0\f$. + +
  • \f$Q\f$ has exactly 1 negative eigenvalue and there exists an + \f$\overline{w}\f$ s.t. \f$Q\overline{w} = q\f$ and \f$ q^\top + \overline{w} - \rho = 0\f$ + +
+ + Quadratic set is a feasible ellipsoid in the first case and maps into a + sphere. It is a cone in the second case and maps into a Lorentz cone in the + u-space. Cases where the conditions do not hold are edge cases and we are not + interested in them. Check references for details. + + We use eigenvalue decomposition of \f$Q\f$ for the transformations. Let \f$Q + := VDV^\top\f$ be the eigenvalue decomposition of \f$Q\f$. + + Then quadratic can be written as follows, + + \f$ \left(w-\overline{w}\right)^\top V \tilde{D}^{\frac{1}{2}} + \tilde{J} + \tilde{D}^{\frac{1}{2}} V^\top \left(w - \overline{w}\right) + \leq + q^\top \overline{w} - \rho \f$. + + For the first case, linear transformation between w and u spaces is as + follows, + + \f$u = \frac {\tilde{D}^{\frac{1}{2}} V^\top \left( w - \overline{w} \right)} + {\sqrt{q^\top \overline{w} - \rho}} \f$. + + For the second case, linear transformation between w and u spaces is as + follows, + + \f$u = \tilde{D}^{\frac{1}{2}} V^\top \left( w - \overline{w} \right) \f$. + + where \f$ \tilde{D}_{ii} := \left| D_{ii} \right| \f$. + + Inverse transformation between w and u spaces + + Case 1, + + \f$ w = \sqrt{q^\top \overline{w} - \rho} V \tilde{D}^{\frac{-1}{2}} u + + \overline{w} \f$. + + Case 2, + + \f$ w = V \tilde{D}^{\frac{-1}{2}} u + \overline{w} \f$. + + Cut is generated in u-space since the quadratic representation is simpler and + formulas are easier to track. To generate cut in the u-space, first the + disjunction should be represented in the u-space. + + + ## Representing disjunctions in the u-space + + ### Primal Form Input + + To represent the disjunctions in u-space we insert \f$ (x^0+Hw) \f$ for x in + disjunction constraints. This will give disjunctions in terms of w (in + w-space). We then insert the inverse of the complicated formula above + (\f$u\f$--\f$w\f$ relationship) for w to obtain disjunctions in terms of + \f$u\f$. + + Let the disjunction be \f$ a^\top x \geq \alpha \f$ and \f$a^\top x \leq + \beta \f$. Then this disjunction can be represented in the u-space as + follows, + + \f$ + \sqrt{q^\top \overline{w} - \rho} a^\top H V \tilde{D}^{\frac{-1}{2}} u + \geq + \alpha - a^\top x^0 - a^\top H \overline{w}. + \f$ + + Lower branch can be written similarly. + + ### Dual Form Input + + Let the disjunction be \f$ a^\top w \geq \alpha \f$ and \f$a^\top w \leq + \beta \f$. Then this disjunction can be represented in the u-space as + follows, + + \f$ + a^\top V \tilde{D}^{\frac{-1}{2}} u + \geq + \alpha - a^\top \overline{w}. + \f$ + + + ## Computing cut + + Once disjunctions are represented in u-space, we compute \f$\tau\f$. This + gives the cut in quadratic form in w space. We need to represent cut in dual + form in the space of the input set (for users convenience, user is aware of + the space of her problem only). + + First we represent the cut in the dual + form in w space. For this we need to compute eigenvalue decomposition of + $Q(\tau)$. Let \f$ Q(\tau) := V(\tau) D(\tau) V(\tau)^\top \f$. We need to + compute a \f$\overline{w}(\tau)\f$ such that \f$ Q(\tau) \overline{w}(\tau) = + q(\tau)\f$ and \f$ q(\tau)^\top \overline{w}(\tau) - \rho(\tau) = 0\f$. Such + \f$\tau\f$ exists since \f$(Q(\tau), q(\tau), \rho(\tau))\f$ defines a cone and + unique when \f$Q(\tau)\f$ is not singular. + + Cut can be represented in dual form in w space as follows, + + \f$ \tilde{D}^{\frac{1}{2}} V^\top (w+\overline{w}) \in \mathbb{L} \f$. + + ### Computing cut for inputs in primal form - The cut is generated in the u-space and then represented in (or transformed - into) the x-space to add into the input problem. To do these - transformations one must understand the relationship (linear - transformations) between (1) \f$x\f$ and \f$w\f$ and (2) \f$w\f$ and - \f$u\f$. Transformation between \f$x\f$ and \f$w\f$ are as follows, + We use matrix \f$ x := x^0 + Hw \f$ and its inverse \f$ w = H^\top (x-x^0) + \f$ to represent cut in the x space. The cut is as follows, - \f$ x = x^0 + Hw\f$ and \f$w = H^\top x - H^\top x^0\f$ + \f$ \tilde{D}^{\frac{1}{2}} V^\top (H^\top (x-x^0) + \overline{w}) \in + \mathbb{L} \f$, - where \f$x^0\f$ is a point in the affine space given by \f$Ax=b\f$ and - columns of \f$H\f$ are an orthonormal basis for the null space of \f$A\f$. + \f$ \tilde{D}^{\frac{1}{2}} V^\top H^\top x - \tilde{D}^{\frac{1}{2}} V^\top + H^\top x^0 + \tilde{D}^{\frac{1}{2}} V^\top \overline{w}) \in + \mathbb{L} \f$, - Relationship between \f$w\f$ and \f$u\f$ is as follows, + \f$ cutA \leftarrow \tilde{D}^{\frac{1}{2}} V^\top H^\top \f$, - \f$u = \frac{\tilde{D}^{\frac{1}{2} V^\top \left( w + Q^{-1}q \right)} - {\sqrt{\left|q^\top Q^{1} q - \rho\right|}} \f$ + \f$ cutb \leftarrow \tilde{D}^{\frac{1}{2}} V^\top + H^\top x^0 - \tilde{D}^{\frac{1}{2}} V^\top \overline{w} \f$. - where \f$Q = VDV^\top\f$ and \f$\tilde{D}_{ii} := \left|D_{ii} \right|$. - Cut is generated in u-space since the quadratic representation is simpler - and formulas are easier to track. To generate cut in the u-space first the - disjunction should be represented in u-space. To represent the disjunctions - in u-space we insert (x^0+Hw) for x in disjunction constraints. This will - give disjunctions in ters of w (in w-space). We then insert the inverse of - the complicated formula above (\f$u\f$--\f$w\f$ relationship) for w to - obtain disjunctions in terms of \f$u\f$. + ### Computing cut for inputs in dual form - Once disjunctions are represented in u-space, we compute $\tau$. This A - gives the cut in quadratic form. The cut is first represented in Lorentz - cone form and then transformed into the x-space. The final cut is - \f$ A' x - y = b' \f$ and \f$y \in \mathbb{L}^m\f$. + Dual form inputs are already in w space. Cut is as follows, + \f$ cutA \leftarrow \tilde{D}^{\frac{1}{2}} V^\top \f$, + + \f$ cutb \leftarrow - \tilde{D}^{\frac{1}{2}} V^\top \overline{w} \f$. + + + # References - References: [1] On families of quadratic surfaces having fixed intersection with two hyperplanes @@ -75,189 +282,256 @@ [3] A Complete Characterization of Disjunctive Conic Cuts for Mixed Integer Second Order Cone Optimization - */ +**/ class CglConicGD1Cut { - ///@name Data obtained from input problem directly. - //@{ - /// Indices of problem rows that will be used to generate cut. - int * rows_; - /// Coefficient matrix obrtained using rows_. - double * matA_; - /// vecx0_ is a point that will be obtained from the given solver. It is a - /// feasible point for the linear constraints and conic constraints for the - /// given problem. + /// Input cone type, primal or dual, need this to decide whether we have a + /// null space basis (#matH_) in case of primal. + CglConicInputType const input_type_; + /// A solution to Ax = b, used in case of primal input. double * vecx0_; - /// disjunctive variable index - int var_index_; - /// Index of cut generating cone. - int cindex_; - /// Type of cut generating cone, Lorentz or Scaled. - OsiConeType ctype_; - /// Lorentz cone type of cut generating cone, rotated or not. - OsiLorentzConeType lctype_; - /// Size of cut generating cone. - int csize_; - // Members of cut generating cone. - int * cmembers_; - /// cone_members_[i] is 1 if column i is in the cone, 0 otherwise. - /// length of this array is larger than csize_ when multiple cones - /// exist in the problem. - int * cone_members_; - //@} - ///@name regularized cone data + ///@name Input conic set in primal or dual form (in x-space or w-space) + /// Primal form is \f$ Ax = b, x \in \mathbb{L} \f$. + /// Dual form is \f$ Ax - b \in \mathbb{L} \f$. + /// Assumes rows of A are linearly independent. //@{ - /// regularized matrix Q - double * Jtilde_; - // regularized vector q is 0.0, no need to store - /// regularized scalar rho - double rho_tilde_; + /// Number of rows of matrix A. + int matA_num_rows_; + /// Number of columns of primal matrix A. + int matA_num_cols_; + /// Pointer to primal matrix A, dense and column ordered. + double * matA_; + /// Pointer to primal right handside vector. + double * vecb_; //@} - ///@name Quadric data obtained by processing the row and cone input. The - // quadric gives a quadratic constraint representation of the same set, - // except nonnegativity of the leading variable. + ///@name Input conic set in dual form (in w-space) + /// Input cone given as a quadratic + /// \f$ x^\top Q x + 2q^\top x + \rho \leq 0 \f$. //@{ - /// Columns of matH_ are basis for the null space of matA_. Columns of matH_ - /// are normalized. - double * matH_; - /// Matrix Q of quadric. + /// Number of variables in dual space. + int quad_num_cols_; + /// Matrix \f$Q\f$ of quadric. double * matQ_; - /// Vector q of quadric. + /// Vector \f$q\f$ of quadric. double * vecq_; - /// Scalar rho of quadric. + /// Scalar \f$\rho\f$ of quadric. double rho_; - /// matV_ keeps eigenvectors of matQ_. + /// Stores a solution to \f$Q w = q \f$. + double * wbar_; + //@} + + ///@name Eigenvalue Decomposition of Q. + //@{ + /// Pointer to dense column ordered matrix \f$V\f$ of eigenvalue + /// decomposition of #matQ_. Columns of #matV_ are eigenvectors of #matQ_. double * matV_; - /// Eigenvalues of matrix Q. - double * eigQ_; + /// Pointer to eigenvectors of #matQ_, only diagonal elements are stored. + double * matD_; //@} - ///@name Cut data. + ///@name Disjunction Data + /// Data of the last disjunction requested by the user. //@{ - /// Parameter tau that gives a cone from convolution of - /// quadric and disjunction. + /// index of disjunctive variable + int dis_index_; + /// right hand side of disjunction \f$ a^\top x \leq \alpha \f$ + double alpha_; + /// right hand side of disjunction \f$ a^\top x \geq \beta \f$ + double beta_; + /// Disjunction coefficient in w space. For dual input this is same as + /// e_{dis_index} unit vector. For primal input, \f$e_{dis_index}^\top H\f$. + double * dis_coef_in_w_; + /// alpha in w space, same as #alpha_ for dual + /// and quadratic input. #alpha_-#vecx0_[#dis_index_] for primal input. + double alpha_in_w_; + /// beta in w space, same as #beta_ for dual + /// and quadratic input. #beta_-#vecx0_[#dis_index_] for primal input. + double beta_in_w_; + //@} + + ///@name Regularized input conic set + //@{ + /// Regularized matrix \f$Q\f$. + double * Jtilde_; + // regularized vector q is 0.0, no need to store + /// Regularized scalar \f$\rho\f$. + double rho_tilde_; + //@} + + ///@name Resulting cut in quadratic form in w-space + //@{ + /// Parameter \f$\tau\f$ that gives a cone from convolution of + /// input conic set and quadratic corresponding to disjunction. double tau_; - /// Matrix Q(tau). + /// Matrix \f$Q(\tau)\f$ in col major dense form. double * matQ_tau_; - /// Vector q(tau)/ + /// Vector \f$q(\tau)\f$ double * vecq_tau_; - /// Scalar rho(tau). + /// Scalar \f$\rho(\tau)\f$. double rho_tau_; - // todo(aykut) I do not see the use of the following, keep it for now. - double * dirTestV_; - // todo(aykut) see what valid is for - bool valid_; - // cutting revealed that problem is infeasible + /// Stores a solution to \f$Q(\tau) w = q(\tau) \f$. + double * wbar_tau_; + //@} + + ///@name Eigenvalue Decomposition of #Qtau_. + //@{ + + /// Pointer to dense column ordered matrix \f$V(\tau)\f$ of eigenvalue + /// decomposition of #matQtau_. Columns of #matVtau_ are eigenvectors of + /// #matQtau_. + double * matV_tau_; + /// Pointer to eigenvectors of #matQtau_, only diagonal elements are stored. + double * matD_tau_; + //@} + + + ///@name Resulting cut represented in dual form in the space of input set (x + /// for primal, w for dual). + + /// User needs the cut represented in the same space as input. Resulting cut + /// is \f$ Ax - b in \mathbb{L}\f$ in the input space. Resulting cut is + /// linear if #cutA_num_rows_ is 1, for this case the cut will be one of + /// disjunctive constraints. This form is computed from quadratic + /// representation using eigenvalue decomposition of #Qtau_ (and matrix + /// #matH_ for input in primal form). + //@{ + int cutA_num_rows_; + int cutA_num_cols_; + double * cutA_; + double * cutb_; + //@} + + /// Null space basis of #primalA_ in case of input in primal form. Dense, + /// column ordered. Columns are orthonormal basis vectors. + // todo(aykut) H is row ordered in computations, fix it. + double * matH_; + + /// True if cut process revealed that problem is infeasible. bool infeasible_; - /// Disjunction used to generate the cut, in x-space. - Disjunction * disjunction_; - /// Solver interface. - OsiConicSolverInterface const * solver_; - /// Normalized disjunction in regularized space, a_ is coefficient, alpha and - /// beta are right hand sites. - double * a_; - double alpha_; - double beta_; - /// resulting cut, cut is Anew x - y = new_rhs and y in L - double * new_matA_; - double * new_rhs_; - // number of rows of A used for generating cut. - int num_rows_; - // disjunction var - int dis_var_; - // relative disjunction var - int rel_dis_var_; - // todo(aykut) get rid of varHead_ variable. - int varHead_; - double * dirTestU_; - // quadric type - char quad_type_; - // cut type, 1 for primal, -1 for dual, 2 and 3 for linear cuts, when cut is linear - // check coef_ and linear_cut_rhs_ to retrieve it. - // when 2 a^T x >= rhs - // when 3 a^T x <= rhs - int cut_type_; - int * linear_cut_ind_; - double * linear_cut_coef_; - double linear_cut_rhs_; - // whether the cut is active - bool active_; - void generate_cut(); - void compute_matrixA(); + /// True if cut generated successfully, 0 otherwise. + bool success_; + ///@name Convert to quadratic form. + //@{ + /// Converts/represents the input conic set in quadratic form, i.e., #matQ_, + /// #vecq_, #rho_. + void compute_quadratic(); + /// Compute matrix #matH_. void compute_matrixH(); + /// Compute matrix #matQ_. void compute_matrixQ(); + /// Compute vector #vecq_. void compute_vectorq(); + /// Compute $rho_. void compute_rho(); - void classify_quadric(); - void compute_disjunction(); + //@} + + /// Compute eigenvalue decompostion of matrix #matQ_ and + /// store results in #matV_ and #matD_. + void decompose_matrixQ(); + void compute_cut(); + + /// Compute disjunctiv hyperplane coefficient and right hand sides in w + /// space. + void compute_disjunction_in_w(); // compute tau value that yields a cone void compute_tau(); + //void compute_disjunction(); // compute rho(tau), rho_tau_ void compute_rho_tau(); // compute q(tau), q_tau_ void compute_q_tau(); // compute Q(tau), Q_tau_ void compute_Q_tau(); + /// Compute eigenvalue decomposition of matrix #matQ_tau_. + void decompose_matrixQtau(); + // compute matrix as a part of the cut to add to model - void compute_new_A(); + //void compute_cutA(); // compute right-hand-side that corresponds to NewA - void compute_new_rhs(); - // print matrix, row major 0, col major 1 + //void compute_cutb(); + + ///@name Debug printing functions + //@{ + /// Print matrix, row major 0, col major 1. void print_matrix(int major, int num_rows, int num_cols, double const * matrix, char const * name = "matrix") const; - // print vector + /// Print vector. void print_vector(int n, double const * vector, char const * name = "vector") const; + /// Print scalar. void print_scalar(double value, char const * name) const; + //@} + + // compute cone at tau - //void coneAtTau(); + // void coneAtTau(); // solve quadratic formula for its largest roots public: - CglConicGD1Cut(); - CglConicGD1Cut(OsiConicSolverInterface const * solver, - int num_rows, int * rows, - int cut_cone, int dis_var); - bool valid() const; - /// returns true when the problem is infeasible + ///@name Constructors and destructor + //@{ + /// Generate cut from cones given in primal form. + /// \f$ Ax = b, x in L \f$ + CglConicGD1Cut(CglConicInputType input_type, CoinPackedMatrix const * A, + double const * b, + double const * x0 = NULL); + /// Generate cut from cones given in dual form, + /// \f$ x^\top Q x + 2q^\top x + \rho \leq 0 \f$. + CglConicGD1Cut(int n, double const * Q, double const * q, double rho); + /// Destructor. + ~CglConicGD1Cut(); + //@} + + /// disjunction \f$ x_{dis_index} \leq \alpha, + /// x_{dis_index} \geq \beta \f$. + void generateCut(int dis_index, double alpha, double beta); + + /// Returns true when the problem is infeasible. bool infeasible() const; + /// Returns true if cut generated successfuly. + bool success() const; + // number of rows of the linear part of the cut // ie num of rows of the new A matrix. int getNumRows() const; // number of columns in the cut int getNumCols() const; - // get variables in the cut - int * getMembers() const; - int cutType() const; + + // Get cut. // return linear part of the cut, constraint matrix. - double const * getNewMatA() const; + double const * getCutA() const; // return right hand side of the linear part of the cut. - double const * getNewRhs() const; - int getVarHead() const; - // get the variables in the cut if cut is in linear form - int const * linear_cut_ind() const; - // get the coefficients of the cut if cut is in linear form - double const * linear_cut_coef() const; - // get the rhs of the cut if the cut is in linear form - double linear_cut_rhs() const; - // get the size of the cut if the cut is in the linear form - int linear_cut_size() const; + double const * getCutb() const; + + /// Get tau + double tau() const { return tau_; } + /// print cut void print_cut() const; - ~CglConicGD1Cut(); + +private: + /// Disable default constructor. + CglConicGD1Cut(); + /// Disable copy constructor. + CglConicGD1Cut(CglConicGD1Cut const & other); + /// Disable copy assignment operator. + CglConicGD1Cut & operator=(CglConicGD1Cut const & other); }; -// define struct for eigenvalue--eigenvector pair +/// Define struct for eigenvalue--eigenvector pair. struct EigenPair { double value_; double * vector_; }; -// create function object to help sorting +/// Create function object to help sorting. struct EigenLess { bool operator()(EigenPair const * a, EigenPair const * b) { return a->value_ < b->value_; } }; + + +#endif diff --git a/src/CglConicGD1/Makefile.in b/src/CglConicGD1/Makefile.in index 5574987..7d81919 100644 --- a/src/CglConicGD1/Makefile.in +++ b/src/CglConicGD1/Makefile.in @@ -107,6 +107,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -140,6 +147,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -148,6 +157,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -199,6 +210,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -207,6 +219,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/src/CglConicGD2/Makefile.in b/src/CglConicGD2/Makefile.in index 3ad3dca..ecf4312 100644 --- a/src/CglConicGD2/Makefile.in +++ b/src/CglConicGD2/Makefile.in @@ -106,6 +106,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -139,6 +146,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -147,6 +156,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -198,6 +209,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -206,6 +218,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/src/CglConicIPM/Makefile.in b/src/CglConicIPM/Makefile.in index eb97d30..3eb7401 100644 --- a/src/CglConicIPM/Makefile.in +++ b/src/CglConicIPM/Makefile.in @@ -118,6 +118,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -151,6 +158,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -159,6 +168,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -210,6 +221,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -218,6 +230,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/src/CglConicIPMint/Makefile.in b/src/CglConicIPMint/Makefile.in index 06ce0ab..efb4968 100644 --- a/src/CglConicIPMint/Makefile.in +++ b/src/CglConicIPMint/Makefile.in @@ -107,6 +107,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -140,6 +147,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -148,6 +157,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -199,6 +210,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -207,6 +219,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/src/CglConicMIR/Makefile.in b/src/CglConicMIR/Makefile.in index 66faac4..d41cf9c 100644 --- a/src/CglConicMIR/Makefile.in +++ b/src/CglConicMIR/Makefile.in @@ -106,6 +106,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -139,6 +146,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -147,6 +156,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -198,6 +209,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -206,6 +218,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/src/CglConicOA/Makefile.in b/src/CglConicOA/Makefile.in index 9789354..004d7d1 100644 --- a/src/CglConicOA/Makefile.in +++ b/src/CglConicOA/Makefile.in @@ -106,6 +106,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -139,6 +146,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -147,6 +156,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -198,6 +209,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -206,6 +218,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/src/Makefile.in b/src/Makefile.in index db5f07e..785c3d6 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -126,6 +126,13 @@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ +BLAS_CFLAGS = @BLAS_CFLAGS@ +BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ +BLAS_DATA = @BLAS_DATA@ +BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ +BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ +BLAS_LIBS = @BLAS_LIBS@ +BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -159,6 +166,8 @@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ +COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ +COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_CGL_FALSE = @COIN_HAS_CGL_FALSE@ COIN_HAS_CGL_TRUE = @COIN_HAS_CGL_TRUE@ COIN_HAS_COINUTILS_FALSE = @COIN_HAS_COINUTILS_FALSE@ @@ -167,6 +176,8 @@ COIN_HAS_COLA_FALSE = @COIN_HAS_COLA_FALSE@ COIN_HAS_COLA_TRUE = @COIN_HAS_COLA_TRUE@ COIN_HAS_DOXYGEN_FALSE = @COIN_HAS_DOXYGEN_FALSE@ COIN_HAS_DOXYGEN_TRUE = @COIN_HAS_DOXYGEN_TRUE@ +COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ +COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_LATEX_FALSE = @COIN_HAS_LATEX_FALSE@ COIN_HAS_LATEX_TRUE = @COIN_HAS_LATEX_TRUE@ COIN_HAS_OSICLP_FALSE = @COIN_HAS_OSICLP_FALSE@ @@ -218,6 +229,7 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ @@ -226,6 +238,13 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPOPT_IPM_SOLVER_FALSE = @IPOPT_IPM_SOLVER_FALSE@ IPOPT_IPM_SOLVER_TRUE = @IPOPT_IPM_SOLVER_TRUE@ +LAPACK_CFLAGS = @LAPACK_CFLAGS@ +LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ +LAPACK_DATA = @LAPACK_DATA@ +LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ +LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ +LAPACK_LIBS = @LAPACK_LIBS@ +LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ diff --git a/src/config.h.in b/src/config.h.in index ea69a50..da20920 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -21,6 +21,9 @@ /* Define to the debug verbosity level (0 is no output) */ #undef COIN_CGLCONIC_VERBOSITY +/* If defined, the BLAS Library is available. */ +#undef COIN_HAS_BLAS + /* Define to 1 if the Cgl package is available */ #undef COIN_HAS_CGL @@ -30,6 +33,9 @@ /* Define to 1 if the Cola package is available */ #undef COIN_HAS_COLA +/* If defined, the LAPACK Library is available. */ +#undef COIN_HAS_LAPACK + /* Define to 1 if the Osi package is available */ #undef COIN_HAS_OSI @@ -51,6 +57,13 @@ /* Define to 1 if the Sample package is available */ #undef COIN_HAS_SAMPLE +/* Define to dummy `main' function (if any) required to link to the Fortran + libraries. */ +#undef F77_DUMMY_MAIN + +/* Define if F77 and FC dummy `main' functions are identical. */ +#undef FC_DUMMY_MAIN_EQ_F77 + /* Define to 1 if you have the header file. */ #undef HAVE_CFLOAT