cstdfloat_complex.hpp 1.8 KB

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