diff -Naur optpp-2.3/config/ac_cxx_compiler_vendor.m4 optpp-2.4/config/ac_cxx_compiler_vendor.m4
--- optpp-2.3/config/ac_cxx_compiler_vendor.m4 2006-03-28 15:26:23.000000000 -0800
+++ optpp-2.4/config/ac_cxx_compiler_vendor.m4 2007-04-27 09:31:20.000000000 -0700
@@ -24,6 +24,8 @@
[ac_cv_cxx_compiler_vendor=gnu],
[_AC_C_IFDEF([__DECCXX],
[ac_cv_cxx_compiler_vendor=compaq],
+ [_AC_C_IFDEF([__PGI],
+ [ac_cv_cxx_compiler_vendor=pgi],
[dnl HP's aCC
_AC_C_IFDEF([__HP_aCC],
[ac_cv_cxx_compiler_vendor=hp],
@@ -37,7 +39,7 @@
_AC_C_IFDEF([_MSC_VER],
[ac_cv_cxx_compiler_vendor=microsoft],
[ac_cv_cxx_compiler_vendor=unknown])
- AC_LANG_POP()])])])])
+ AC_LANG_POP()])])])])])
AC_LANG_POP()])
$1="$ac_cv_cxx_compiler_vendor"
@@ -47,6 +49,7 @@
[case "$ac_cv_cxx_compiler_vendor" in
gnu) $2=g++;;
compaq) $2=cxx;;
+ pgi) $2=pgCC;;
hp) $2=aCC;;
sgi) $2=CC;;
microsoft) $2=cl;;
diff -Naur optpp-2.3/config/optpp_options.m4 optpp-2.4/config/optpp_options.m4
--- optpp-2.3/config/optpp_options.m4 2006-08-30 20:05:29.000000000 -0700
+++ optpp-2.4/config/optpp_options.m4 2007-04-27 09:31:20.000000000 -0700
@@ -4,6 +4,7 @@
dnl Check for BLAS library.
+ AC_F77_LIBRARY_LDFLAGS
ACX_BLAS
AM_CONDITIONAL([HAVE_BLAS], [test "x$acx_blas_ok" = xyes])
diff -Naur optpp-2.3/configure optpp-2.4/configure
--- optpp-2.3/configure 2006-08-31 17:19:51.000000000 -0700
+++ optpp-2.4/configure 2007-05-01 16:27:11.000000000 -0700
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for OPTPP 2.3.
+# Generated by GNU Autoconf 2.59 for OPTPP 2.4.
#
# Report bugs to .
#
@@ -423,8 +423,8 @@
# Identity of this package.
PACKAGE_NAME='OPTPP'
PACKAGE_TARNAME='optpp'
-PACKAGE_VERSION='2.3'
-PACKAGE_STRING='OPTPP 2.3'
+PACKAGE_VERSION='2.4'
+PACKAGE_STRING='OPTPP 2.4'
PACKAGE_BUGREPORT='http://software.sandia.gov/bugzilla'
ac_unique_file="src/globals.C"
@@ -962,7 +962,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures OPTPP 2.3 to adapt to many kinds of systems.
+\`configure' configures OPTPP 2.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1028,7 +1028,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of OPTPP 2.3:";;
+ short | recursive ) echo "Configuration of OPTPP 2.4:";;
esac
cat <<\_ACEOF
@@ -1174,7 +1174,7 @@
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-OPTPP configure 2.3
+OPTPP configure 2.4
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1188,7 +1188,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by OPTPP $as_me 2.3, which was
+It was created by OPTPP $as_me 2.4, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1920,7 +1920,7 @@
# Define the identity of the package.
PACKAGE='optpp'
- VERSION='2.3'
+ VERSION='2.4'
cat >>confdefs.h <<_ACEOF
@@ -19264,6 +19264,9 @@
#define DAKOTA_OPTPP 1
_ACEOF
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
fi
ac_ext=cc
@@ -20478,6 +20481,41 @@
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __PGI
+ # error "Macro __PGI is undefined!"
+ /* For some compilers (eg. SGI's CC), #error is not
+ enough... */
+ please, do fail
+ #endif
+_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_cv_cxx_compiler_vendor=pgi
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
cat >conftest.$ac_ext <<_ACEOF
#ifndef __HP_aCC
# error "Macro __HP_aCC is undefined!"
@@ -20606,6 +20644,8 @@
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
@@ -20616,7 +20656,7 @@
fi
echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_vendor" >&5
echo "${ECHO_T}$ac_cv_cxx_compiler_vendor" >&6
- ="$ac_cv_cxx_compiler_vendor"
+ CXX_VENDOR="$ac_cv_cxx_compiler_vendor"
@@ -21730,295 +21770,168 @@
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 "$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
else
- cat >conftest.$ac_ext <<_ACEOF
- program main
+ 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
- end
+ # First, try linking without a dummy main:
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
+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 ()
+{
+
+ ;
+ 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_f77_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_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
-
- 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:21780: \"$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"
+ ac_cv_fortran_dummy_main=none
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
-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'` ;;
+ac_cv_fortran_dummy_main=unknown
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
- # 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 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. */
+#define $ac_fortran_dm_var $ac_func
+#ifdef F77_DUMMY_MAIN
- # 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
+# ifdef __cplusplus
+ extern "C"
+# endif
+ int F77_DUMMY_MAIN() { return 1; }
+#endif
+int
+main ()
+{
- # 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
+ ;
+ 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_fortran_dummy_main=$ac_func; break
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
+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
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
+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 >conftest.$ac_ext <<_ACEOF
- program main
+cat >>confdefs.h <<_ACEOF
+#define F77_DUMMY_MAIN $F77_DUMMY_MAIN
+_ACEOF
- end
+ 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
-# 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:21858: \"$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"
+ 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
@@ -22031,86 +21944,69 @@
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 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 "$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
- 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. */
-
-#ifdef F77_DUMMY_MAIN
-
-# ifdef __cplusplus
- extern "C"
-# endif
- int F77_DUMMY_MAIN() { return 1; }
-
-#endif
-int
-main ()
-{
-
- ;
- return 0;
-}
+ cat >conftest.$ac_ext <<_ACEOF
+ subroutine foobar()
+ return
+ end
+ subroutine foo_bar()
+ return
+ end
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
+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_c_werror_flag"
+ { 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_exeext'
+ { 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_fortran_dummy_main=none
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ mv conftest.$ac_objext cfortran_test.$ac_objext
-ac_cv_fortran_dummy_main=unknown
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
+ ac_save_LIBS=$LIBS
+ LIBS="cfortran_test.$ac_objext $LIBS $FLIBS"
- 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
+ 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. */
-#define $ac_fortran_dm_var $ac_func
+
+/* 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
@@ -22122,7 +22018,7 @@
int
main ()
{
-
+$ac_func ();
;
return 0;
}
@@ -22149,7 +22045,7 @@
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_fortran_dummy_main=$ac_func; break
+ ac_success=yes; break 2
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
@@ -22157,166 +22053,9 @@
fi
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
-
-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
+ 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
@@ -22453,6 +22192,307 @@
+ 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
+
+ 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
+
+ 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:22246: \"$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
+
+
+ # 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:22324: \"$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
+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
+
@@ -25407,7 +25447,7 @@
} >&5
cat >&5 <<_CSEOF
-This file was extended by OPTPP $as_me 2.3, which was
+This file was extended by OPTPP $as_me 2.4, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -25470,7 +25510,7 @@
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-OPTPP config.status 2.3
+OPTPP config.status 2.4
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
diff -Naur optpp-2.3/configure.ac optpp-2.4/configure.ac
--- optpp-2.3/configure.ac 2006-08-29 17:10:04.000000000 -0700
+++ optpp-2.4/configure.ac 2007-05-01 16:25:26.000000000 -0700
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.59])
-AC_INIT([OPTPP], [2.3], [http://software.sandia.gov/bugzilla])
+AC_INIT([OPTPP], [2.4], [http://software.sandia.gov/bugzilla])
AC_CONFIG_SRCDIR([src/globals.C])
AC_CONFIG_HEADER([include/OPT++_config.h])
@@ -43,6 +43,8 @@
-f "$srcdir/../../dakota_config.h.in"; then
AC_MSG_RESULT([yes])
AC_DEFINE([DAKOTA_OPTPP],[1],[Identifier for non-standalone builds.])
+else
+ AC_MSG_RESULT([no])
fi
AC_LANG([C++])
@@ -70,6 +72,7 @@
AC_HEADER_TIME
AC_STRUCT_TM
AC_LANG_POP([C])
+AC_CXX_COMPILER_VENDOR([CXX_VENDOR])
AC_CXX_CPPFLAGS_STD_LANG([CXXFLAGS])
AC_CXX_NAMESPACES
AC_CXX_HAVE_SSTREAM
diff -Naur optpp-2.3/docs/guide/AlternativeFunctions.html optpp-2.4/docs/guide/AlternativeFunctions.html
--- optpp-2.3/docs/guide/AlternativeFunctions.html 1969-12-31 16:00:00.000000000 -0800
+++ optpp-2.4/docs/guide/AlternativeFunctions.html 2007-05-01 16:11:59.000000000 -0700
@@ -0,0 +1,101 @@
+
+/** \page AlternativeFunctions Alternate Forms of Nonlinear Objects
+
+\section problem Problem Setup
+There are alternate forms of the function that accept a vptr as the final
+argument. A vptr is a void pointer that the user can use for any desired
+purpose, such as application reentry. The most common constructors are shown below.
+
+
+ - NLF0(ndim, fcn, init_fcn, constraint, vptr): problem has no analytic
+ derivative information available
+
+ - NLF1(ndim, fcn, init_fcn, constraint, vptr): problem has analytic
+ first derivatives available, but no analytic second derivatives
+
+ - NLF2(ndim, fcn, init_fcn, constraint,vptr): problem has analytic first and
+ second derivatives available
+
+ - FDNLF1(ndim, fcn, init_fcn, constraint, vptr): problem has no
+ analytic derivative information available, but finite differences
+ are used to approximate first derivatives
+
+ - LSQNLF(ndim, lsqterms, lsqfcn, init_fcn, constraint,vptr): problem has a
+ least squares operator, Gauss-Newton is used to approximate Jacobian
+ and Hessian
+
+
+For completeness, we describe the other arguments to the constructor.
+The arguments to the constructors must be defined before instantiating
+the function object. The following description holds for the first four
+nonlinear function objects, which have identical argument lists. We will
+define the argument list for the LSQNLF later.
+
+The first argument, ndim, is an integer
+specifying the dimension of the problem. The second argument,
+fcn, is a pointer to the subroutine that evaluates the
+function. The form of this pointer/subroutine is described in more
+detail in the User-Defined Functions
+subsection. The third argument, init_fcn, is a pointer to
+the subroutine that initializes the function. Again, the form of this
+pointer/subroutine is described in the
+User-Defined Functions subsection. The fourth argument,
+constraint, is a pointer to a constraint object. If the
+optimization problem of interest has no constraints, this argument can
+be excluded. Otherwise, it can be constructed as described in the
+ %Constraint Setup subsection.
+
+For the LSQNLF object, the first argument, ndim, is an integer
+specifying the dimension of the problem. The second argument,
+lsqterms, is an integer specifying the number of least square terms
+in the function. The third argument,
+lsqfcn, is a pointer to the subroutine that evaluates the least squares
+operator. The form of this pointer/subroutine is described in more
+detail in the User-Defined Functions
+subsection. The remaining arguments have the same meaning as previously
+defined.
+
+ User-Defined Functions
+
+In addition to the main routine, the user must provide additional C++
+code that performs the initialization of the problem, the evaluation
+of the objective function, and the evaluation of any nonlinear
+constraints. This code must also include the computation of any
+analytic derivative information that is to be provided. These
+subroutines may appear in the same file as the main routine or in a
+separate file, and they must satisfy the interfaces listed below.
+
+The function interfaces are the following:
+
+
+ - void (*USERFCN0V)(ndim, x, fx, result, vptr): for NLF0 and FDNLF1
+
- void (*USERFCN1V)(mode, ndim, x, fx, gx, result, vptr): for NLF1
+
- void (*USERFCN2V)(mode, ndim, x, fx, gx, Hx, result, vptr): for NFL2
+
- void (*USERFCNLSQ0V)(ndim, x, lsfx, result, vptr): for LSQNLF or
+
- void (*USERFCNLSQ1V)(mode, ndim, x, lsfx, lsgx, result, vptr): for LSQNLF
+
+
+The arguments of these functions are fairly straightforward.
+ndim is an integer that specifies the dimension of the
+problem, x is a ColumnVector that contains the values of the
+optimization variables, fx is the value of the objective
+function at x, gx is a ColumnVector containing the
+gradient of the objective function at x, Hx is a
+SymmetricMatrix containing the Hessian of the objective function at
+x, mode is an integer encoding of the type of
+evaluation requested (i.e., function, gradient, Hessian),
+result is an integer encoding of the type of evaluations
+available and vptr is a void pointer which contains user-specified
+information. For the least squares operator, lsfx is a ColumnVector
+with each entry containing the value of one of the least squares terms and
+lsgx is a Matrix containing the Jacobian of the least squares
+operator at x.
+The ColumnVector, Matrix, and SymmetricMatrix objects are described
+in the NEWMAT documentation.
+
+ Previous Section: \ref SetUp | Next Section: \ref GUI_XMLDoc
+| Back to the Main Page
+
+Last revised April 18, 2007
+
+*/
diff -Naur optpp-2.3/docs/guide/example1.html optpp-2.4/docs/guide/example1.html
--- optpp-2.3/docs/guide/example1.html 2006-08-30 21:09:44.000000000 -0700
+++ optpp-2.4/docs/guide/example1.html 2007-05-01 16:11:59.000000000 -0700
@@ -24,11 +24,15 @@
\section main1 Main Routine
First include the necessary header files. Start with any C++/C header
-files that are needed. In this case, a bit of I/O done. The other
+files that are needed. In this case, a bit of I/O. The other
two header files are OPT++ header files. NLF contains objects, data,
and methods required for setting up the function/problem. OptQNewton
contains the objects, data, and methods required for using an
-unconstrained quasi-Newton optimization method.
+unconstrained quasi-Newton optimization method. The last statement
+ using NEWMAT::ColumnVector introduces the data member ColumnVector
+from the matrix library namespace NEWMAT. The use of namespaces prevents
+potential conflicts with third party libraries that may also have a data
+member named ColumnVector.
|
@@ -37,10 +41,12 @@
#include "NLF.h"
#include "OptQNewton.h"
+
+using NEWMAT::ColumnVector;
\endcode
|
-These two lines serve as the declarations of the pointers to the
+The following two lines serve as the declarations of the pointers to the
subroutines that initialize the problem and evaluate the objective
function, respectively.
@@ -52,8 +58,9 @@
\endcode
-The next few lines complete the setup of the problem. Set the
-dimension of the problem. Create the nonlinear function object using
+The next few lines complete the setup of the problem, which include
+setting the dimension of the problem and creating the nonliner function
+object. To create the nonlinear function object use
the dimension of the problem and the pointers to the subroutines
declared above. The FDNLF1 object has built-in finite-difference
approximations to the gradient.
@@ -69,7 +76,7 @@
\endcode
-Build a quasi-Newton algorithm object using the nonlinear problem that
+Now, let's build a quasi-Newton algorithm object using the nonlinear problem that
has just been created. The quasi-Newton algorithm will use BFGS
updates to approximate the Hessian. In addition, set any of the
algorithmic parameters to desired values. All parameters have default
@@ -105,7 +112,7 @@
\endcode
-Print out some summary information and clean up before exiting. The
+Finally, print out some summary information and clean up before exiting. The
summary information is handy, but not necessary. The cleanup flushes
the I/O buffers.
@@ -128,12 +135,19 @@
second performs the evaluation of the function.
First, include the necessary header files. In this case, we need the
-OPT++ header file, NLP, for some definitions.
+OPT++ header file, NLP, for some definitions. Next, we define the scope of the
+methods using namespace. The first statment introduces the data
+member ColumnVector from the namespace NEWMAT. The second statement allows
+us to refer to all the methods in the OPTPP namespace. These two statements
+are crucial for a sucessful compilation.
|
\code
#include "NLP.h"
+
+using NEWMAT::ColumnVector;
+using namespace::OPTPP;
\endcode
|
@@ -174,7 +188,7 @@
The last piece of code is a subroutine that will evaluate the
function. In this problem, we are trying to find the minimum value of
Rosenbrock's function, so it is necessary to write the code that
-compute the value of that function given some set of optimization
+computes the value of that function given some set of optimization
parameters. Mathematically, Rosenbrock's function is:
\f[f(x) = 100(x_2 - x_{1}^2)^2 + (1 - x_1)^2 \f]
@@ -224,43 +238,74 @@
Rosenbrock's function, give it a try!
\section run1 Building and Running the Example
-
-If you want to try running this example, the following steps should do
-the trick.
-
+Building your executable should be fairly straightforward. Below is
+the recommended set of steps to follow.
- - cd into your favorite directory.
-
- Write the code described above. You can organize it however
- you like. Our convention is to put the main routine in one
- file (e.g., example1.C) and the user-defined functions in
- another (e.g., tstfcn.C).
-
- Copy the Makefile from the tests/uncon directory into the
- directory where your code resides. (WARNING: Since the
- Makefile contains platform-dependent information, it should be
- one that was configured for the platform on which you are doing
- this example.)
-
- Edit the Makefile as follows
-
- - replace the existing SOURCES with
- \verbatim
- SOURCES = example1.C tstfcn.C
- \endverbatim
-
- replace the existing PGMS with
- \verbatim
- PGMS = example1
- \endverbatim
-
- include a target for building your executable
- \verbatim
- example1: example1.o tstfcn.o
- \$(LD) \$(LDFLAGS) -o example1 example1.o tstfcn.o
- \$(LIBS)
- \endverbatim
- (Note: The initial space in the second line of the target
- MUST be a TAB.)
-
- - Type "make".
+
- Determine which defines you need. If the C++ compiler you
+ are using supports the ANSI standard style of C header
+ files, you will need
+ \verbatim
+ -DHAVE_STD
+ \endverbatim
+ If the C++ compiler you are using supports namespaces, you
+ will need
+ \verbatim
+ -DHAVE_NAMESPACES
+ \endverbatim
+ If you are using the parallel version of OPT++, you will
+ need
+ \verbatim
+ -DWITH_MPI
+ \endverbatim
+
- Determine the location of the header files. If you did a
+ "make install", they will be located in the "include"
+ subdirectory of the directory in which OPT++ is installed.
+ If that directory is not one your compiler normally checks,
+ you will need
+ \verbatim
+ -IOPT++_install_directory/include
+ \endverbatim
+ If you did not do a "make install", the header files will
+ almost certainly be in a directory not checked by your
+ compiler. Thus, you will need
+ \verbatim
+ -IOPT++_top_directory/include -IOPT++_top_directory/newmat11
+ \endverbatim
+
- Determine the location of the libraries. If you did a
+ "make install", they will be located in the "lib"
+ subdirectory of the directory in which OPT++ is installed.
+ If that directory is not one your compiler normally checks,
+ you will need
+ \verbatim
+ -LOPT++_install_directory/lib
+ \endverbatim
+ If you did not do a "make install", the libraries will
+ almost certainly be in a directory not checked by your
+ compiler. Thus, you will need
+ \verbatim
+ -LOPT++_top_directory/lib/.libs
+ \endverbatim
+
- If you configured OPT++ for the default behavior of using
+ the BLAS and/or you configure OPT++ to use NPSOL, you will
+ need the appropriate Fortran libraries for linking. The
+ easiest way to get these is to look in the Makefile for the
+ value of FLIBS.
+
- If all is right in the world, the following format for your
+ compilation command should work:
+ \verbatim
+ $CXX example1.C tstfcn.C -lopt -lnewmat -l$BLAS_LIB $FLIBS
+ \endverbatim
+ $CXX is the C++ compiler you are using. and
+ are the flags determined in steps 1-2. example1.C
+ is your main routine, and tstfcn.C contains your function
+ evaluations. (Note: If you have put them both in one file,
+ you need only list that single file here.)
-
You should now be able to run the executable (type "./example1"). You
can compare the results, found in example1.out, to our results. There may be slight
@@ -269,7 +314,7 @@
Next Example: \ref example2 | Back to \ref SetUp
-Last revised July 25, 2006
+Last revised April 27, 2007
*/
diff -Naur optpp-2.3/docs/guide/example2.html optpp-2.4/docs/guide/example2.html
--- optpp-2.3/docs/guide/example2.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/example2.html 2007-05-01 16:11:59.000000000 -0700
@@ -18,6 +18,7 @@
gradient and Hessian information is available for both the objective
function and the nonlinear constraints. We opted to use a nonlinear
interior-point method to solve this problem.
+
Recall that it is necessary to write C++ code for the main routine
that sets up the problem and the algorithm and for the subroutines
that initialize and evaluate the function and the constraints. We
@@ -37,7 +38,13 @@
methods required for setting up the function/problem. The next three
header files contain objects, data, and methods required for the
constraints. OptNIPS contains the objects, data, and methods required
-for using the nonlinear interior-point optimization method.
+for using the nonlinear interior-point optimization method. The last four
+statements correspond to the use of namespaces. The
+ using NEWMAT::ColumnVector statement imports the data member
+\a ColumnVector from the matrix library namespace NEWMAT. The use of namespaces
+prevents potential conflicts with third party libraries that may also have a data
+members named \a ColumnVector, \a Matrix, and \a SymmetricMatrix. The last
+statement allows you to access methods and data members in the OPTPP namespace.
|
@@ -47,6 +54,12 @@
#include "NonLinearInequality.h"
#include "CompoundConstraint.h"
#include "OptNIPS.h"
+
+using NEWMAT::ColumnVector;
+using NEWMAT::Matrix;
+using NEWMAT::SymmetricMatrix;
+
+using namespace OPTPP;
\endcode
|
@@ -188,19 +201,25 @@
evaluation of the nonlinear constraints.
First, include the necessary header files. In this case, we need the
-OPT++ header file, NLP, for some definitions.
+OPT++ header file, NLP, for some definitions. We also need to list which
+items we are using from the NEWMAT namespace. We recommend this approach
+as opposed using namespace NEWMAT to reduce the potential for
+naming conflicts.
|
\code
#include "NLP.h"
+using NEWMAT::ColumnVector;
+using NEWMAT::Matrix;
+using NEWMAT::SymmetricMatrix;
\endcode
|
The subroutine that initializes the problem should perform any
one-time tasks that are needed for the problem. One part of that is
checking for error conditions in the setup. In this case, the
-dimension, ndim, can only take on a value of 3. Using "exit"
+dimension, \a ndim, can only take on a value of 3. Using "exit"
is not the ideal way to deal with error conditions, but it serves well
as an example.
@@ -217,7 +236,7 @@
The initialization is also an ideal place to set the initial values of
-the optimization parameters, x. This can be hard coded, as
+the optimization parameters, \a x. This can be hard coded, as
done here, or it can be done in some other manner (e.g., reading them
in from a file, the code for which should appear here).
@@ -227,9 +246,9 @@
// ColumnVectors are indexed from 1, and they use parentheses around
// the index.
- x(1) = -5.0 - (factor - 1)*8.6505 ;
- x(2) = 5.0 + (factor - 1)*1.3495 ;
- x(3) = 0.0 - (factor - 1)*4.6204 ;
+ x(1) = -5.0 - (factor - 1)*8.6505;
+ x(2) = 5.0 + (factor - 1)*1.3495;
+ x(3) = 0.0 - (factor - 1)*4.6204;
}
\endcode
@@ -237,15 +256,15 @@
The next piece of code is a subroutine that will evaluate the
function. In this problem, we are trying to find the minimum value of
Hock and Schittkowski problem 65, so it is necessary to write the code
-that compute the value of that function given some set of optimization
+that computes the value of that function given some set of optimization
parameters. Mathematically, that function is:
\f[f(x) = (x_1 - x_2)^2 + (1/9)(x_1 + x_2 - 10)^2 + (x_3 - 5)^2 \f]
-The following code will compute the value of f(x).
+The following code will compute the value of \a f(x).
First, some error checking and manipulation of the optimization
-parameters, x, are done.
+parameters, \a x, are done.
If a function evaluation is requested, then the function value,
-fx, is computed, and the result variable is set to
-indicated that a function evaluation has been done.
+\a fx, is computed, and the \a result variable is set to
+indicate that a function evaluation has been done.
|
@@ -280,8 +299,8 @@
\endcode
|
-If a gradient evaluation is requested, then the gradient, gx,
-is computed, and the result variable is set to indicated that
+If a gradient evaluation is requested, then the gradient, \a gx,
+is computed, and the \a result variable is set to indicate that
a gradient evaluation has been done.
@@ -296,8 +315,8 @@
\endcode
-If a Hessian evaluation is requested, then the Hessian, Hx,
-is computed, and the result variable is set to indicated that
+If a Hessian evaluation is requested, then the Hessian, \a Hx,
+is computed, and the \a result variable is set to indicate that
a Hessian evaluation has been done.
@@ -393,36 +412,70 @@
the trick.
- - cd into your favorite directory.
-
- Write the code described above. You can organize it however
- you like. Our convention is to put the main routine in one
- file (e.g., example2.C) and the user-defined functions in
- another (e.g., tstfcn.C).
-
- Copy the Makefile from the tests/uncon directory into the
- directory where your code resides. (WARNING: Since the
- Makefile contains platform-dependent information, it should be
- one that was configured for the platform on which you are doing
- this example.)
-
- Edit the Makefile as follows
-
- - replace the existing SOURCES with
- \verbatim
- SOURCES = example2.C tstfcn.C
- \endverbatim
-
- replace the existing PGMS with
- \verbatim
- PGMS = example2
- \endverbatim
-
- include a target for building your executable
- \verbatim
- example2: example2.o tstfcn.o
- \$(LD) \$(LDFLAGS) -o example2 example2.o tstfcn.o
- \$(LIBS)
- \endverbatim
- (Note: The initial space in the second line of the target
- MUST be a TAB.)
-
- - Type "make".
+
- Determine which defines you need. If the C++ compiler you
+ are using supports the ANSI standard style of C header
+ files, you will need
+ \verbatim
+ -DHAVE_STD
+ \endverbatim
+ If the C++ compiler you are using supports namespaces, you
+ will need
+ \verbatim
+ -DHAVE_NAMESPACES
+ \endverbatim
+ If you are using the parallel version of OPT++, you will
+ need
+ \verbatim
+ -DWITH_MPI
+ \endverbatim
+
- Determine the location of the header files. If you did a
+ "make install", they will be located in the "include"
+ subdirectory of the directory in which OPT++ is installed.
+ If that directory is not one your compiler normally checks,
+ you will need
+ \verbatim
+ -IOPT++_install_directory/include
+ \endverbatim
+ If you did not do a "make install", the header files will
+ almost certainly be in a directory not checked by your
+ compiler. Thus, you will need
+ \verbatim
+ -IOPT++_top_directory/include -IOPT++_top_directory/newmat11
+ \endverbatim
+
- Determine the location of the libraries. If you did a
+ "make install", they will be located in the "lib"
+ subdirectory of the directory in which OPT++ is installed.
+ If that directory is not one your compiler normally checks,
+ you will need
+ \verbatim
+ -LOPT++_install_directory/lib
+ \endverbatim
+ If you did not do a "make install", the libraries will
+ almost certainly be in a directory not checked by your
+ compiler. Thus, you will need
+ \verbatim
+ -LOPT++_top_directory/lib/.libs
+ \endverbatim
+
- If you configured OPT++ for the default behavior of using
+ the BLAS and/or you configure OPT++ to use NPSOL, you will
+ need the appropriate Fortran libraries for linking. The
+ easiest way to get these is to look in the Makefile for the
+ value of FLIBS.
+
- If all is right in the world, the following format for your
+ compilation command should work:
+ \verbatim
+ $CXX example2.C tstfcn.C -lopt -lnewmat -l$BLAS_LIB $FLIBS
+ \endverbatim
+ $CXX is the C++ compiler you are using. and
+ are the flags determined in steps 1-2. example2.C
+ is your main routine, and tstfcn.C contains your function
+ evaluations. (Note: If you have put them both in one file,
+ you need only list that single file here.)
You should now be able to run the executable (type "./example2"). You
@@ -433,4 +486,6 @@
Previous Example: \ref example1 | Back to \ref SetUp
+Last revised April 27, 2007 .
+
*/
diff -Naur optpp-2.3/docs/guide/FAQS.html optpp-2.4/docs/guide/FAQS.html
--- optpp-2.3/docs/guide/FAQS.html 2006-08-30 21:10:06.000000000 -0700
+++ optpp-2.4/docs/guide/FAQS.html 2007-05-01 16:14:36.000000000 -0700
@@ -48,7 +48,7 @@
- Do you support the Macintosh environment?
-A MAC OSX port is available in OPT++2.3.
+A MAC OSX port is available in OPT++2.4.
- Do you accept contributions to the package?
Yes. We gladly welcome new algorithmic and functional capabilities to share
@@ -149,6 +149,6 @@
Previous Section: \ref MethodsDoc | Next Section: \ref
ReferencesDoc | Back to the Main Page
-Last revised August 30, 2006
+Last revised May 1, 2007
*/
diff -Naur optpp-2.3/docs/guide/InstallDoc.html optpp-2.4/docs/guide/InstallDoc.html
--- optpp-2.3/docs/guide/InstallDoc.html 2006-08-31 16:28:56.000000000 -0700
+++ optpp-2.4/docs/guide/InstallDoc.html 2007-05-01 16:15:26.000000000 -0700
@@ -35,10 +35,10 @@
tests that you can build and run.
If you are in a real hurry or one of the truly impatient, the
-following 3 commands lines should get you going on most systems.
+following 5 command lines should get you going on most systems.
- - cd optpp-2.3
+
- cd optpp-2.4
- ./configure
- make >& make.log
- make check >& makecheck.log
@@ -201,7 +201,7 @@
The default configuration builds OPT++ to run serially; however, OPT++
does have algorithms the leverage parallelism should you wish to take
-advantage of that capability. Parallelism is achieved with through
+advantage of that capability. Parallelism is achieved through
the use of MPI. The assumption is that an implementation of MPI is
already installed somewhere on your system. If it is not, there are a
number of open source versions you can download and install. Those
@@ -621,23 +621,26 @@
| \c i686
| Linux 2.4.21-*
Linux 2.6.9-*
- Linux 2.6.12-*
- | GNU 3.2.2, 3.2.3, 3.4.3, 3.4.4, 3.4.5, 4.0.1, 4.0.2
- Intel 8.1, 9.0
+ Linux 2.6.20-*
+ | GNU 3.2.2, 3.2.3, 3.4.3, 3.4.5, 3.4.6, 4.0.2, 4.1.1
+ Intel 8.1, 9.0
+ PGI 5.2, 6.0, 6.2
|
| \c i686
| Cygwin 1.5.20-1
- | GNU 3.4.4
+ Cygwin 1.5.25
+ | GNU 3.4.4
|
| \c x86_64 (Intel)
- | Linux 2.4.21-37.EL
- | GNU 3.2.2, 3.2.3, 3.4.3
- Intel 8.1, 9.0
+ | Linux 2.6.9-34.0.2
+ | GNU 3.4.5
|
| \c x86_64 (AMD)
- | Linux 2.6.9-15.EL.rootsmp
- | GNU 3.4.3
- Intel 8.1, 9.0, 9.1
+ | Linux 2.4.21-37
+ Linux 2.6.9-42.0.2
+ | GNU 3.2.2, 3.2.3, 3.4.3, 3.4.6
+ Intel 8.1, 9.0, 9.1
+ PGI 6.2
|
| \c Mac PowerPC
| OS X 10.3.9
@@ -652,17 +655,13 @@
| IRIX 6.5
| CC/cc MIPSPro 7.4.2
|
-| \c ALPHA
- | OSF 5.1
- | cxx 6.3-002/cc 6.4-214
- |
| \c IBM
| AIX 5.2
| xlC/xlc 7.0
|
It is possible the OPT++ will also build with the MinGW compilers and
-the Microsoft compilers; however, there are no guarantees. It has not
+the Microsoft compilers; however, there are no guarantees. OPT++ is not
yet stable on those platforms and has not been fully tested.
The parallel version of OPT++ has only been built and tested on an
@@ -715,6 +714,18 @@
yet, so it is currently not available with this version.
We will get this finished and distribute a patch file as
quickly as we can.
+
+ - PGI Compilers: In our testing, we found that autotools was
+ adding an invalid item to the list of libraries when using
+ the PGI compilers. This causes the build of the test
+ problems to break. We have not yet isolated the problem,
+ but in the the meantime, it is an easy fix. If "make
+ check" fails, go into the "Makefile" in each of the test
+ directories (tests/constraints, tests/hock, tests/npsol,
+ tests/parallel, and tests/uncon) and search for "FLIBS".
+ Delete the first entry in the list, "-lm'"...it is that
+ extra single quote that is the culprit. Then try "make
+ check" again.
\section disclaimer The Standard Absolution of Responsibility
@@ -732,7 +743,7 @@
Next Section: \ref SetUp | Back to the Main
Page
-Last revised August 30, 2006
+Last revised May 1, 2007
*/
diff -Naur optpp-2.3/docs/guide/MainPage.html optpp-2.4/docs/guide/MainPage.html
--- optpp-2.3/docs/guide/MainPage.html 2006-08-30 21:12:28.000000000 -0700
+++ optpp-2.4/docs/guide/MainPage.html 2007-05-01 16:15:45.000000000 -0700
@@ -1,4 +1,4 @@
-/** \mainpage OPT++ 2.3 Documentation
+/** \mainpage OPT++ 2.4 Documentation
\section intro Introduction
@@ -76,6 +76,6 @@
Labs, for their assistance in converting the build system to
autotools.
-Last revised August 30, 2006
+Last revised May 1, 2007
*/
diff -Naur optpp-2.3/docs/guide/SetUp.html optpp-2.4/docs/guide/SetUp.html
--- optpp-2.3/docs/guide/SetUp.html 2006-08-30 21:13:37.000000000 -0700
+++ optpp-2.4/docs/guide/SetUp.html 2007-05-01 16:11:59.000000000 -0700
@@ -78,7 +78,7 @@
constraint, is a pointer to a constraint object. If the
optimization problem of interest has no constraints, this argument can
be excluded. Otherwise, it can be constructed as described in the
- %Constraint Setup subsection.
+ %Constraint Setup subsection.
Once the problem has been instantiated, it must be initialized with
its initFcn method. More information on these objects and their
@@ -329,7 +329,7 @@
\ref example2
- Previous Section: \ref InstallDoc | Next Section: \ref GUI_XMLDoc
+
Previous Section: \ref InstallDoc | Next Section: \ref AlternativeFunctions
| Back to the Main Page
Last revised July 25, 2006
diff -Naur optpp-2.3/docs/guide/tstbcnips.html optpp-2.4/docs/guide/tstbcnips.html
--- optpp-2.3/docs/guide/tstbcnips.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/tstbcnips.html 2007-04-27 09:31:21.000000000 -0700
@@ -5,15 +5,15 @@
#include
#include
- using namespace std;
-
#include "NLF.h"
#include "Constraint.h"
#include "BoundConstraint.h"
#include "CompoundConstraint.h"
#include "OptFDNIPS.h"
#include "tstfcn.h"
- #include "ioformat.h"
+
+ using NEWMAT::ColumnVector;
+ using namespace OPTPP;
void update_model(int, int, ColumnVector) {}
@@ -58,4 +58,6 @@
Next Section: Constrained minimization
| Back to Solvers Page
+Last revised September 14, 2006 .
+
*/
diff -Naur optpp-2.3/docs/guide/tstbcqnewton.html optpp-2.4/docs/guide/tstbcqnewton.html
--- optpp-2.3/docs/guide/tstbcqnewton.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/tstbcqnewton.html 2007-04-27 09:31:21.000000000 -0700
@@ -1,16 +1,19 @@
/** \page tstbcqnewton Bound-constrained Quasi-Newton method with line-search
\code
- #include "OptppArray.h"
- #include
+ #include
+ #include "OptBCQNewton.h"
#include "NLF.h"
#include "tstfcn.h"
#include "Constraint.h"
#include "BoundConstraint.h"
#include "CompoundConstraint.h"
- #include "OptBCQNewton.h"
+ #include "OptppArray.h"
+
+ using NEWMAT::ColumnVector;
+ using namespace OPTPP;
void update_model(int, int, ColumnVector) {}
@@ -42,4 +45,5 @@
interior-point method |
Back to Bound-constrained minimization
+Last revised September 14, 2006 .
*/
diff -Naur optpp-2.3/docs/guide/tstcg.html optpp-2.4/docs/guide/tstcg.html
--- optpp-2.3/docs/guide/tstcg.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/tstcg.html 2007-04-27 09:31:21.000000000 -0700
@@ -6,6 +6,9 @@
#include "OptCG.h"
#include "NLF.h"
#include "tstfcn.h"
+
+ using NEWMAT::ColumnVector;
+ using namespace OPTPP;
void update_model(int, int, ColumnVector) {}
@@ -43,4 +46,6 @@
trust-region |
Back to Unconstrained minimization
+Last revised September 14, 2006 .
+
*/
diff -Naur optpp-2.3/docs/guide/tstgss.html optpp-2.4/docs/guide/tstgss.html
--- optpp-2.3/docs/guide/tstgss.html 2006-08-30 21:14:44.000000000 -0700
+++ optpp-2.4/docs/guide/tstgss.html 2007-04-27 09:31:21.000000000 -0700
@@ -21,24 +21,32 @@
|
\code
- #include
+ #ifdef HAVE_CONFIG_H
+ #include "OPT++_config.h"
+ #endif
+
+ #include
#include
#ifdef HAVE_STD
#include
#else
#include
#endif
- #include "NLF.h"
- #include "ioformat.h"
+
+ #ifdef WITH_MPI
+ #include "mpi.h"
+ #endif
#include "GenSet.h"
#include "OptGSS.h"
+ #include "NLF.h"
#include "tstfcn.h"
- #ifdef WITH_MPI
- #include "mpi.h"
- #endif
+ using NEWMAT::ColumnVector;
+ using std::cerr;
+
+ using namespace OPTPP;
\endcode
|
@@ -179,7 +187,7 @@
Next Section: Optimization Methods | Back to Main Page
-Last revised July 25, 2006
+Last revised September 14, 2006
*/
diff -Naur optpp-2.3/docs/guide/tstnips.html optpp-2.4/docs/guide/tstnips.html
--- optpp-2.3/docs/guide/tstnips.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/tstnips.html 2007-05-01 16:11:59.000000000 -0700
@@ -1,11 +1,17 @@
/** \page tstnips Nonlinear interior-point method with backtracking line-search
-We use OptNIPS, which is a nonlinear interior-point algorithm with
+We use OptNIPS, which is a nonlinear interior-point algorithm that requires
analytic Hessians, to solve problem 65 (hs65) from the Hock and Schittkowski
suite of nonlinear programming problems. We limit the number of backtrack
iterations to seven in the linesearch routine and use the residual of the
first order optimality conditions as the merit function.
+Moreover, we activate
+a method to restore infeasibility, if any, with respect to the inequality constraints
+in the problem formulation. We set the maximum number of iterations to five in the
+feasibility recovery method. The default number of iterations is three. Each iteration
+requires a constraint and constraint gradient evaluation.
+
\code
#include
@@ -15,6 +21,10 @@
#include "OptNIPS.h"
#include "hockfcns.h"
+ using NEWMAT::ColumnVector;
+
+ using namespace OPTPP;
+
void update_model(int, int, ColumnVector) {}
@@ -35,6 +45,8 @@
objfcn.setSearchStrategy(LineSearch);
objfcn.setMaxBacktrackIter(7);
objfcn.setMeritFcn(NormFmu);
+ objfcn.setFeasibilityRecovery(true);
+ objfcn.setMaxFeasIter(5);
objfcn.optimize();
objfcn.printStatus("Solution from nips");
objfcn.cleanup();
@@ -45,5 +57,6 @@
Next Section: NPSOL wrapper
| Back to Solvers Page
+Last revised September 14, 2006 .
*/
diff -Naur optpp-2.3/docs/guide/tstnpsol.html optpp-2.4/docs/guide/tstnpsol.html
--- optpp-2.3/docs/guide/tstnpsol.html 2006-07-13 09:46:34.000000000 -0700
+++ optpp-2.4/docs/guide/tstnpsol.html 2007-04-27 09:31:21.000000000 -0700
@@ -8,10 +8,12 @@
\code
+ #ifdef HAVE_CONFIG_H
+ #include "OPT++_config.h"
+ #endif
#include
#include
- #include "ioformat.h"
#ifdef HAVE_STD
#include
#include
@@ -23,6 +25,10 @@
#include "OptNPSOL.h"
#include "tstfcn.h"
+ using NEWMAT::ColumnVector;
+
+ using namespace OPTPP;
+
double const LOW_BOUND = -4.5;
double const UP_BOUND = 4.5;
@@ -68,4 +74,6 @@
Next Section: Parallel optimization
| Back to Solvers Page
+Last revised September 14, 2006 .
+
*/
diff -Naur optpp-2.3/docs/guide/tstpds.html optpp-2.4/docs/guide/tstpds.html
--- optpp-2.3/docs/guide/tstpds.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/tstpds.html 2007-04-27 09:31:21.000000000 -0700
@@ -16,7 +16,13 @@
\code
+
+ #ifdef HAVE_CONFIG_H
+ #include "OPT++_config.h"
+ #endif
+
#include
+ #include
#include
#ifdef HAVE_STD
#include
@@ -24,17 +30,24 @@
#include
#endif
- #include "OptppSmartPtr.C"
+ #ifdef WITH_MPI
+ #include "mpi.h"
+ #endif
#include "OptPDS.h"
#include "NLF.h"
- #include "tstfcn.h"
+ #include "CompoundConstraint.h"
+ #include "BoundConstraint.h"
#include "OptppArray.h"
#include "cblas.h"
#include "ioformat.h"
- #ifdef WITH_MPI
- #include "mpi.h"
- #endif
+
+ #include "tstfcn.h"
+
+ using NEWMAT::ColumnVector;
+ using NEWMAT::Matrix;
+
+ using namespace OPTPP;
void SetupTestProblem(string test_id, USERFCN0 *test_problem,
INITFCN *init_problem);
@@ -224,4 +237,6 @@
Search |
Back to Parallel Optimization
+Last revised September 14, 2006 .
+
*/
diff -Naur optpp-2.3/docs/guide/tstqnewton.html optpp-2.4/docs/guide/tstqnewton.html
--- optpp-2.3/docs/guide/tstqnewton.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/tstqnewton.html 2007-04-27 09:31:21.000000000 -0700
@@ -17,6 +17,9 @@
#include "NLF.h"
#include "tstfcn.h"
+ using NEWMAT::ColumnVector;
+ using namespace OPTPP;
+
void update_model(int, int, ColumnVector) {}
int main ()
@@ -55,4 +58,6 @@
minimization |
Back to Solvers Page
+Last revised September 14, 2006 .
+
*/
diff -Naur optpp-2.3/docs/guide/tsttrpds.html optpp-2.4/docs/guide/tsttrpds.html
--- optpp-2.3/docs/guide/tsttrpds.html 2006-07-13 14:18:29.000000000 -0700
+++ optpp-2.4/docs/guide/tsttrpds.html 2007-04-27 09:31:21.000000000 -0700
@@ -16,6 +16,10 @@
|
\code
+ #ifdef HAVE_CONFIG_H
+ #include "OPT++_config.h"
+ #endif
+
#include
#include
#include
@@ -25,7 +29,10 @@
#include
#endif
- #include "OptppSmartPtr.C"
+ #ifdef WITH_MPI
+ #include "mpi.h"
+ #endif
+
#include "NLF.h"
#include "NLP2.h"
#include "BoundConstraint.h"
@@ -33,9 +40,11 @@
#include "OptConstrQNewton.h"
#include "tstfcn.h"
#include "ioformat.h"
- #ifdef WITH_MPI
- #include "mpi.h"
- #endif
+
+ using NEWMAT::ColumnVector;
+ using std::cerr;
+
+ using namespace OPTPP;
void SetupTestProblem(string test_id, USERFCN0 *test_problem,
INITFCN *init_problem);
@@ -194,4 +203,6 @@
Next Section: Generating Set Search Methods | Back to Main Page
+Last revised September 14, 2006 .
+
*/
diff -Naur optpp-2.3/docs/images/bckgnd.jpg optpp-2.4/docs/images/bckgnd.jpg
--- optpp-2.3/docs/images/bckgnd.jpg 2002-02-14 18:02:30.000000000 -0800
+++ optpp-2.4/docs/images/bckgnd.jpg 2007-04-27 09:31:21.000000000 -0700
@@ -1,5 +1,8 @@
JFIF H H Photoshop 3.0 8BIM x H H (FG( H H ( d ' @ 8BIM H H 8BIM 8BIM'
8BIM H /ff lff /ff 2 Z 5 - 8BIM p 8BIM Adobe d
-
` `" ?
+
+
+
+ ` `" ?
3 !1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw 5 !1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ? aNJBiT/)6@`M'>T5H | |