diff configure.in @ 8185:69c5cce38c29

implement 64-bit arithmetics
author Jaroslav Hajek <highegg@gmail.com>
date Mon, 06 Oct 2008 21:38:49 +0200
parents 66bc6f9b4f72
children cf59d542f33e
line wrap: on
line diff
--- a/configure.in	Mon Oct 06 14:12:09 2008 -0400
+++ b/configure.in	Mon Oct 06 21:38:49 2008 +0200
@@ -1378,6 +1378,10 @@
 
 OCTAVE_FAST_INT_OPS
 
+### Check for long double type (for 64-bit integers)
+
+AC_CHECK_SIZEOF(long double)
+
 ### Checks for header files.
 
 AC_HEADER_STDC
@@ -1452,7 +1456,7 @@
   getppid getpwent getpwuid gettimeofday getuid getwd _kbhit kill \
   lgamma lgammaf lgamma_r lgammaf_r link localtime_r log1p log1pf lstat \
   memmove mkdir mkfifo mkstemp on_exit pipe poll putenv raise readlink \
-  realpath rename resolvepath rindex rmdir round select setgrent setlocale \
+  realpath rename resolvepath rindex rmdir round roundl select setgrent setlocale \
   setpwent setvbuf sigaction siglongjmp sigpending sigprocmask sigsuspend \
   snprintf stat strcasecmp strdup strerror stricmp strncasecmp \
   strnicmp strptime strsignal symlink tempnam tgamma tgammaf trunc umask \
@@ -1967,6 +1971,13 @@
 #define SIZEOF_OCTAVE_IDX_TYPE SIZEOF_INT
 #endif
 
+// To be able to use long doubles for 64-bit mixed arithmetics, we need them at
+// least 80 bits wide and we need roundl declared in math.h
+// TODO: Maybe substitute this by a more precise check in the future.
+#if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL)
+#define OCTAVE_INT_USE_LONG_DOUBLE
+#endif
+
 #define OCTAVE_EMPTY_CPP_ARG
 
 #include "oct-dlldefs.h"