1 ///////////////////////////////////////////////////////////////////////////////
2 // Copyright Christopher Kormanyos 2014.
3 // Copyright John Maddock 2014.
4 // Copyright Paul Bristow 2014.
5 // Distributed under the Boost Software License,
6 // Version 1.0. (See accompanying file LICENSE_1_0.txt
7 // or copy at http://www.boost.org/LICENSE_1_0.txt)
8 //
9 
10 // <boost/cstdfloat.hpp> implements floating-point typedefs having
11 // specified widths, as described in N3626 (proposed for C++14).
12 // See: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3626.pdf
13 
14 #ifndef _BOOST_CSTDFLOAT_2014_01_09_HPP_
15   #define _BOOST_CSTDFLOAT_2014_01_09_HPP_
16 
17   // Include the floating-point type definitions.
18   #include <boost/math/cstdfloat/cstdfloat_types.hpp>
19 
20   // Support a specialization of std::numeric_limits<> for the wrapped quadmath library (if available).
21   #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS)
22     #include <boost/math/cstdfloat/cstdfloat_limits.hpp>
23   #endif
24 
25   // Support <cmath> functions for the wrapped quadmath library (if available).
26   #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH)
27     #include <boost/math/cstdfloat/cstdfloat_cmath.hpp>
28   #endif
29 
30   // Support I/O stream operations for the wrapped quadmath library (if available).
31   #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM)
32     #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH)
33     #error You can not use <boost/math/cstdfloat/cstdfloat_iostream.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH defined.
34     #endif
35     #include <boost/math/cstdfloat/cstdfloat_iostream.hpp>
36   #endif
37 
38   // Support a specialization of std::complex<> for the wrapped quadmath library (if available).
39   #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_COMPLEX)
40     #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS)
41     #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS defined.
42     #endif
43     #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH)
44     #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH defined.
45     #endif
46     #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM)
47     #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM defined.
48     #endif
49     #include <boost/math/cstdfloat/cstdfloat_complex.hpp>
50   #endif
51 
52 
53   // Undefine BOOST_NO_FLOAT128_T because this constant is not meant for public use.
54   #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T)
55   #undef BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T
56   #endif
57 
58 #endif // _BOOST_CSTDFLOAT_2014_01_09_HPP_
59