lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] master 9d3528a4 3/4: Enable architecture identificat


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 9d3528a4 3/4: Enable architecture identification in C++
Date: Thu, 10 Mar 2022 16:07:29 -0500 (EST)

branch: master
commit 9d3528a4ebec87994422c476f73e9a06d35815b8
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Enable architecture identification in C++
---
 config.hpp    | 13 +++++++++++++
 zero_test.cpp | 12 +++++++++++-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/config.hpp b/config.hpp
index 12de1663..304edf64 100644
--- a/config.hpp
+++ b/config.hpp
@@ -43,8 +43,10 @@
 
 #if defined unix || defined __unix__ || defined __unix // Detected POSIX.
 #   define LMI_POSIX
+#   define LMI_OSTYPE "posix"
 #elif defined __WIN32__ || defined _WIN32 || defined WIN32 // Detected msw.
 #   define LMI_MSW
+#   define LMI_OSTYPE "msw"
 #else  // Unknown OS.
 #   error Unknown operating system. Consider contributing support.
 #endif // Unknown OS.
@@ -54,10 +56,12 @@
 #if defined __x86_64 || defined __x86_64__ || defined __amd64 || defined 
__amd64__ || defined _M_X64
 #   define LMI_X86
 #   define LMI_X86_64
+#   define LMI_MACHINE "x86_64"
 #elif defined _X86_ || defined _M_IX86 || defined i386 || defined __i386
     // Not amd64, so presumably x86-32.
 #   define LMI_X86
 #   define LMI_X86_32
+#   define LMI_MACHINE "x86_32"
 #else  // Unknown hardware.
 #   error Unknown hardware. Consider contributing support.
 #endif // Unknown hardware.
@@ -86,6 +90,11 @@
 #   else   // Unknown compiler.
 #       error Unknown compiler--cannot detect SSE. Consider contributing 
support.
 #   endif  // Unknown compiler.
+#   if defined LMI_X87
+#       define LMI_FPTYPE "x87"
+#   else   // !defined LMI_X87
+#       define LMI_FPTYPE "sse"
+#   endif  // !defined LMI_X87
 #endif // defined LMI_X86
 
 // This selects a correct snprintf() for MinGW-w64.
@@ -114,8 +123,10 @@
 // Order of tests is important here: real gcc must be tested last.
 #if defined __clang__
 #   define LMI_CLANG
+#   define LMI_COMPILER "clang"
 #elif defined __GNUC__
 #   define LMI_GCC
+#   define LMI_COMPILER "gcc"
 #endif // defined __GNUC__
 
 // It is impossible to compile lmi with g++ prior to version 3, though
@@ -188,6 +199,8 @@
 #   define LMI_MSVCRT
 #endif // Compilers that use the msvc C runtime, without corrections such as 
libmingwex.
 
+#define LMI_CONTEXT LMI_MACHINE ", " LMI_FPTYPE ", " LMI_COMPILER ", " 
LMI_OSTYPE
+
 #if defined HAVE_CONFIG_H // Using autoconf.
 #   include "config.h"
 #else // Not using autoconf.
diff --git a/zero_test.cpp b/zero_test.cpp
index ba2d0fef..c9f26d95 100644
--- a/zero_test.cpp
+++ b/zero_test.cpp
@@ -2979,18 +2979,28 @@ int test_main(int, char*[])
     test_former_rounding_problem();
     test_toms748();
 
-    std::cout << "TOMS 748 tests:" << std::endl;
+    std::cout << "--8<----8<--" << std::endl;
+    std::cout << LMI_CONTEXT << std::endl;
 #if defined TEST_ALEFELD
+    std::cout << "TOMS 748 tests: Alefeld, tol 1.0e-7" << std::endl;
     test_alefeld_examples(2650, 1.0e-7);
+    std::cout << "TOMS 748 tests: Alefeld, tol 1.0e-10" << std::endl;
     test_alefeld_examples(2786, 1.0e-10);
+    std::cout << "TOMS 748 tests: Alefeld, tol 1.0e-15" << std::endl;
     test_alefeld_examples(2859, 1.0e-15);
+    std::cout << "TOMS 748 tests: Alefeld, tol 0.0" << std::endl;
     test_alefeld_examples(2884, 0.0);
 #else  // !defined TEST_ALEFELD
+    std::cout << "TOMS 748 tests: Brent, tol 1.0e-7" << std::endl;
     test_alefeld_examples(2804, 1.0e-7);
+    std::cout << "TOMS 748 tests: Brent, tol 1.0e-10" << std::endl;
     test_alefeld_examples(2905, 1.0e-10);
+    std::cout << "TOMS 748 tests: Brent, tol 1.0e-15" << std::endl;
     test_alefeld_examples(2975, 1.0e-15);
+    std::cout << "TOMS 748 tests: Brent, tol 0.0" << std::endl;
     test_alefeld_examples(3008, 0.0);
 #endif // !defined TEST_ALEFELD
+    std::cout << "--8<----8<--" << std::endl;
 
     return 0;
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]