summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/math/config
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/math/config')
-rw-r--r--src/boost/libs/math/config/Jamfile.v252
-rw-r--r--src/boost/libs/math/config/has_128bit_floatmax_t.cpp19
-rw-r--r--src/boost/libs/math/config/has_e_float.cpp15
-rw-r--r--src/boost/libs/math/config/has_fftw3.cpp19
-rw-r--r--src/boost/libs/math/config/has_float128.cpp17
-rw-r--r--src/boost/libs/math/config/has_gcc_visibility.cpp13
-rw-r--r--src/boost/libs/math/config/has_gmp.cpp33
-rw-r--r--src/boost/libs/math/config/has_gmpxx.cpp7
-rw-r--r--src/boost/libs/math/config/has_intel_quad.cpp16
-rw-r--r--src/boost/libs/math/config/has_long_double_support.cpp10
-rw-r--r--src/boost/libs/math/config/has_mpfr.cpp47
-rw-r--r--src/boost/libs/math/config/has_mpfr_class.cpp15
-rw-r--r--src/boost/libs/math/config/has_mpreal.cpp14
-rw-r--r--src/boost/libs/math/config/has_ntl_rr.cpp12
14 files changed, 289 insertions, 0 deletions
diff --git a/src/boost/libs/math/config/Jamfile.v2 b/src/boost/libs/math/config/Jamfile.v2
new file mode 100644
index 00000000..86db7150
--- /dev/null
+++ b/src/boost/libs/math/config/Jamfile.v2
@@ -0,0 +1,52 @@
+# copyright John Maddock 2008
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt.
+
+import modules ;
+import path ;
+
+local ntl-path = [ modules.peek : NTL_PATH ] ;
+local gmp_path = [ modules.peek : GMP_PATH ] ;
+local e_float_path = [ modules.peek : E_FLOAT_PATH ] ;
+
+lib quadmath ;
+lib fftw3 ;
+lib fftw3f ;
+lib fftw3l ;
+lib fftw3q ;
+
+obj has_long_double_support : has_long_double_support.cpp ;
+obj has_mpfr_class : has_mpfr_class.cpp :
+ <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx ;
+obj has_mpreal : has_mpreal.cpp :
+ <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/mpfrc++ ;
+obj has_ntl_rr : has_ntl_rr.cpp : <include>$(ntl-path)/include ;
+obj has_gmpxx : has_gmpxx.cpp :
+ <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx ;
+obj has_gcc_visibility : has_gcc_visibility.cpp :
+ <toolset>gcc:<cxxflags>-fvisibility=hidden <toolset>gcc:<cxxflags>-Werror ;
+obj has_e_float : has_e_float.cpp : <include>$(e_float_path) ;
+exe has_float128 : has_float128.cpp quadmath ;
+exe has_fftw3 : has_fftw3.cpp fftw3 fftw3f fftw3l ;
+exe has_intel_quad : has_intel_quad.cpp : <cxxflags>-Qoption,cpp,--extended_float_type ;
+obj has_128bit_floatmax_t : has_128bit_floatmax_t.cpp ;
+obj has_mpfr : has_mpfr.cpp :
+ <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx ;
+obj has_gmp : has_gmp.cpp :
+ <include>$(gmp_path) <include>$(gmp_path)/mpfr <include>$(gmp_path)/gmpfrxx ;
+
+explicit has_long_double_support ;
+explicit has_mpfr_class ;
+explicit has_mpfr ;
+explicit has_gmp ;
+explicit has_mpreal ;
+explicit has_ntl_rr ;
+explicit has_gmpxx ;
+explicit has_gcc_visibility ;
+explicit has_e_float ;
+explicit has_float128 ;
+explicit has_intel_quad ;
+explicit has_128bit_floatmax_t ;
+explicit has_fftw3 ;
+
diff --git a/src/boost/libs/math/config/has_128bit_floatmax_t.cpp b/src/boost/libs/math/config/has_128bit_floatmax_t.cpp
new file mode 100644
index 00000000..aee4837c
--- /dev/null
+++ b/src/boost/libs/math/config/has_128bit_floatmax_t.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2014.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/cstdfloat.hpp>
+#include <boost/static_assert.hpp>
+
+#ifndef BOOST_FLOAT128_C
+#error "There is no 128 bit floating point type"
+#endif
+
+BOOST_STATIC_ASSERT(sizeof(boost::floatmax_t) * CHAR_BIT == 128);
+
+int main()
+{
+ return 0;
+}
+
diff --git a/src/boost/libs/math/config/has_e_float.cpp b/src/boost/libs/math/config/has_e_float.cpp
new file mode 100644
index 00000000..1f3b3053
--- /dev/null
+++ b/src/boost/libs/math/config/has_e_float.cpp
@@ -0,0 +1,15 @@
+// Copyright John Maddock 2011.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+
+#ifdef _MSC_VER
+# pragma warning (disable : 4100) // unreferenced formal parameter
+#endif
+
+#define E_FLOAT_TYPE_EFX
+
+#include <e_float/e_float.h>
+#include <functions/functions.h>
+
diff --git a/src/boost/libs/math/config/has_fftw3.cpp b/src/boost/libs/math/config/has_fftw3.cpp
new file mode 100644
index 00000000..80456857
--- /dev/null
+++ b/src/boost/libs/math/config/has_fftw3.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2017.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <fftw3.h>
+
+int main()
+{
+ fftwq_plan plan; // early versions don't have this it seems.
+
+ fftw_cleanup();
+ fftwf_cleanup();
+ fftwl_cleanup();
+
+
+ return 0;
+}
+
diff --git a/src/boost/libs/math/config/has_float128.cpp b/src/boost/libs/math/config/has_float128.cpp
new file mode 100644
index 00000000..60a2e2e4
--- /dev/null
+++ b/src/boost/libs/math/config/has_float128.cpp
@@ -0,0 +1,17 @@
+// Copyright John Maddock 2013.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+extern "C" {
+#include <quadmath.h>
+}
+
+int main()
+{
+ __float128 f = -2.0Q;
+ f = fabsq(f);
+
+ return 0;
+}
+
diff --git a/src/boost/libs/math/config/has_gcc_visibility.cpp b/src/boost/libs/math/config/has_gcc_visibility.cpp
new file mode 100644
index 00000000..6c7d6f91
--- /dev/null
+++ b/src/boost/libs/math/config/has_gcc_visibility.cpp
@@ -0,0 +1,13 @@
+// Copyright John Maddock 20010.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef __GNUC__
+# error "This is a GCC specific test case".
+#endif
+
+int main()
+{
+ return 0;
+}
diff --git a/src/boost/libs/math/config/has_gmp.cpp b/src/boost/libs/math/config/has_gmp.cpp
new file mode 100644
index 00000000..196b6e2f
--- /dev/null
+++ b/src/boost/libs/math/config/has_gmp.cpp
@@ -0,0 +1,33 @@
+// Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <cstddef> // See https://gcc.gnu.org/gcc-4.9/porting_to.html
+#include <gmp.h>
+#include <boost/config.hpp>
+
+#ifdef __GNUC__
+#pragma message "__GNU_MP_VERSION=" BOOST_STRINGIZE(__GNU_MP_VERSION)
+#pragma message "__GNU_MP_VERSION_MINOR=" BOOST_STRINGIZE(__GNU_MP_VERSION_MINOR)
+#endif
+
+#if (__GNU_MP_VERSION < 4) || ((__GNU_MP_VERSION == 4) && (__GNU_MP_VERSION_MINOR < 2))
+#error "Incompatible GMP version"
+#endif
+
+int main()
+{
+ void* (*alloc_func_ptr)(size_t);
+ void* (*realloc_func_ptr)(void*, size_t, size_t);
+ void (*free_func_ptr)(void*, size_t);
+
+ mp_get_memory_functions(&alloc_func_ptr, &realloc_func_ptr, &free_func_ptr);
+
+ mpz_t integ;
+ mpz_init(integ);
+ if (integ[0]._mp_d)
+ mpz_clear(integ);
+
+ return 0;
+}
diff --git a/src/boost/libs/math/config/has_gmpxx.cpp b/src/boost/libs/math/config/has_gmpxx.cpp
new file mode 100644
index 00000000..edf62d8c
--- /dev/null
+++ b/src/boost/libs/math/config/has_gmpxx.cpp
@@ -0,0 +1,7 @@
+// Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <gmpxx.h>
+
diff --git a/src/boost/libs/math/config/has_intel_quad.cpp b/src/boost/libs/math/config/has_intel_quad.cpp
new file mode 100644
index 00000000..a2db80cc
--- /dev/null
+++ b/src/boost/libs/math/config/has_intel_quad.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2013.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+extern "C" _Quad __fabs(_Quad);
+
+int main()
+{
+ _Quad f = -2.0Q;
+ f = __fabsq(f);
+
+ return 0;
+}
+
+
diff --git a/src/boost/libs/math/config/has_long_double_support.cpp b/src/boost/libs/math/config/has_long_double_support.cpp
new file mode 100644
index 00000000..d314cf38
--- /dev/null
+++ b/src/boost/libs/math/config/has_long_double_support.cpp
@@ -0,0 +1,10 @@
+// Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/math/tools/config.hpp>
+
+#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+#error "long double support is not supported by Boost.Math on this Plaform: the long double version of the TR1 library will not be built."
+#endif
diff --git a/src/boost/libs/math/config/has_mpfr.cpp b/src/boost/libs/math/config/has_mpfr.cpp
new file mode 100644
index 00000000..c82f28d7
--- /dev/null
+++ b/src/boost/libs/math/config/has_mpfr.cpp
@@ -0,0 +1,47 @@
+// Copyright John Maddock 2012.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#include <cstddef> // See https://gcc.gnu.org/gcc-4.9/porting_to.html
+#include <mpfr.h>
+#include <boost/config.hpp>
+
+#ifdef __GNUC__
+#pragma message "MPFR_VERSION_STRING=" MPFR_VERSION_STRING
+#endif
+
+#if (__GNU_MP_VERSION < 4) || ((__GNU_MP_VERSION == 4) && (__GNU_MP_VERSION_MINOR < 2))
+#error "Incompatible GMP version"
+#endif
+
+#if (MPFR_VERSION < 3)
+#error "Incompatible MPFR version"
+#endif
+
+#ifdef __GNUC__
+#pragma message "__GNU_MP_VERSION=" BOOST_STRINGIZE(__GNU_MP_VERSION)
+#pragma message "__GNU_MP_VERSION_MINOR=" BOOST_STRINGIZE(__GNU_MP_VERSION_MINOR)
+#endif
+
+#if (__GNU_MP_VERSION < 4) || ((__GNU_MP_VERSION == 4) && (__GNU_MP_VERSION_MINOR < 2))
+#error "Incompatible GMP version"
+#endif
+
+int main()
+{
+ void* (*alloc_func_ptr)(size_t);
+ void* (*realloc_func_ptr)(void*, size_t, size_t);
+ void (*free_func_ptr)(void*, size_t);
+
+ mp_get_memory_functions(&alloc_func_ptr, &realloc_func_ptr, &free_func_ptr);
+
+ mpfr_buildopt_tls_p();
+
+ mpfr_t t;
+ mpfr_init2(t, 128);
+ if (t[0]._mpfr_d)
+ mpfr_clear(t);
+
+ return 0;
+}
diff --git a/src/boost/libs/math/config/has_mpfr_class.cpp b/src/boost/libs/math/config/has_mpfr_class.cpp
new file mode 100644
index 00000000..376b022d
--- /dev/null
+++ b/src/boost/libs/math/config/has_mpfr_class.cpp
@@ -0,0 +1,15 @@
+// Copyright John Maddock 2008.
+// Copyright Paul A. Britow 2009
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifdef _MSC_VER
+# pragma warning (disable : 4127) // conditional expression is constant
+# pragma warning (disable : 4800) // 'int' : forcing value to bool 'true' or 'false' (performance warning)
+# pragma warning (disable : 4512) // assignment operator could not be generated
+#endif
+
+#include <cstddef>
+#include <gmpfrxx.h>
+
diff --git a/src/boost/libs/math/config/has_mpreal.cpp b/src/boost/libs/math/config/has_mpreal.cpp
new file mode 100644
index 00000000..8ee8897d
--- /dev/null
+++ b/src/boost/libs/math/config/has_mpreal.cpp
@@ -0,0 +1,14 @@
+// Copyright John Maddock 2008.
+// Copyright Paul A. Britow 2009
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifdef _MSC_VER
+# pragma warning (disable : 4127) // conditional expression is constant
+# pragma warning (disable : 4800) // 'int' : forcing value to bool 'true' or 'false' (performance warning)
+# pragma warning (disable : 4512) // assignment operator could not be generated
+#endif
+
+#include <mpreal.h>
+
diff --git a/src/boost/libs/math/config/has_ntl_rr.cpp b/src/boost/libs/math/config/has_ntl_rr.cpp
new file mode 100644
index 00000000..f3844217
--- /dev/null
+++ b/src/boost/libs/math/config/has_ntl_rr.cpp
@@ -0,0 +1,12 @@
+// Copyright John Maddock 2008.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+
+#ifdef _MSC_VER
+# pragma warning (disable : 4100) // unreferenced formal parameter
+#endif
+
+#include <NTL/RR.h>
+