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 // Implement quadruple-precision (and extended) support for <complex>. 11 12 #ifndef BOOST_MATH_CSTDFLOAT_COMPLEX_2014_02_15_HPP_ 13 #define BOOST_MATH_CSTDFLOAT_COMPLEX_2014_02_15_HPP_ 14 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> 19 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. 22 #endif 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. 25 #endif 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. 28 #endif 29 30 #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT) 31 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 35 36 #endif // Not BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT (i.e., the user would like to have libquadmath support) 37 38 #endif // BOOST_MATH_CSTDFLOAT_COMPLEX_2014_02_15_HPP_ 39