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)
10 // Implement quadruple-precision (and extended) support for <complex>.
12 #ifndef _BOOST_CSTDFLOAT_COMPLEX_2014_02_15_HPP_
13 #define _BOOST_CSTDFLOAT_COMPLEX_2014_02_15_HPP_
15 #include <boost/math/cstdfloat/cstdfloat_types.hpp>
16 #include <boost/math/cstdfloat/cstdfloat_limits.hpp>
17 #include <boost/math/cstdfloat/cstdfloat_cmath.hpp>
18 #include <boost/math/cstdfloat/cstdfloat_iostream.hpp>
20 #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS)
21 #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS defined.
23 #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH)
24 #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH defined.
26 #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM)
27 #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM defined.
30 #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT)
32 #define BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE boost::math::cstdfloat::detail::float_internal128_t
33 #include <boost/math/cstdfloat/cstdfloat_complex_std.hpp>
34 #undef BOOST_CSTDFLOAT_EXTENDED_COMPLEX_FLOAT_TYPE
36 #endif // Not BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT (i.e., the user would like to have libquadmath support)
38 #endif // _BOOST_CSTDFLOAT_COMPLEX_2014_02_15_HPP_