diff --git a/configure b/configure index 48e8fbb8f..7893b1cb0 100755 --- a/configure +++ b/configure @@ -28204,6 +28204,35 @@ printf "%s\n" "#define IPOPT_HAS_RAND 1" >>confdefs.h fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for std::srand" >&5 +printf %s "checking for std::srand... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + int main () + { (void) std::srand(1) ; + return 0 ; } + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + +printf "%s\n" "#define IPOPT_HAS_STD__RAND 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else case e in #( + e) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + ################## # feenableexcept # ################## @@ -28412,7 +28441,7 @@ else case e in #( JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST -/* #line 28415 "configure" */ +/* #line 28444 "configure" */ public class Test { } EOF diff --git a/configure.ac b/configure.ac index 50d9b1447..7bb29ebd7 100644 --- a/configure.ac +++ b/configure.ac @@ -328,6 +328,10 @@ AC_CHECK_DECL([drand48],[AC_DEFINE([IPOPT_HAS_DRAND48],[1], AC_CHECK_DECL([rand],[AC_DEFINE([IPOPT_HAS_RAND],[1], [Define to 1 if function rand is available])],,[#include ]) +AC_COIN_CHECK_NAMESPACE_DECL([std::srand],[1], + [AC_DEFINE([IPOPT_HAS_STD__RAND],[1],[Define to 1 if function std::rand is available])],[], + [#include ]) + ################## # feenableexcept # ################## diff --git a/src/Common/IpUtils.cpp b/src/Common/IpUtils.cpp index 204957c9a..5035b326e 100644 --- a/src/Common/IpUtils.cpp +++ b/src/Common/IpUtils.cpp @@ -113,7 +113,7 @@ Number IpRandom01() # ifdef IPOPT_HAS_RAND return Number(rand()) / Number(RAND_MAX); # else -# ifdef HAVE_STD__RAND +# ifdef IPOPT_HAS_STD__RAND return Number(std::rand()) / Number(RAND_MAX); # else # error "don't have function for random number generator" @@ -130,7 +130,7 @@ void IpResetRandom01() # ifdef IPOPT_HAS_RAND srand(1); # else -# ifdef HAVE_STD__RAND +# ifdef IPOPT_HAS_STD__RAND std::srand(1); # else # error "don't have function for random number generator" diff --git a/src/Common/config.h.in b/src/Common/config.h.in index 5d8438eae..2620daf56 100644 --- a/src/Common/config.h.in +++ b/src/Common/config.h.in @@ -132,6 +132,9 @@ /* Define to 1 if the Spral package is available */ #undef IPOPT_HAS_SPRAL +/* Define to 1 if function std::rand is available */ +#undef IPOPT_HAS_STD__RAND + /* Define to 1 if va_copy is available */ #undef IPOPT_HAS_VA_COPY