1 2 // Copyright (c) 2011 John Maddock 3 // Use, modification and distribution are subject to the 4 // Boost Software License, Version 1.0. (See accompanying file 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 7 #ifndef BOOST_MP_BIG_LANCZOS 8 #define BOOST_MP_BIG_LANCZOS 9 10 #include <boost/math/bindings/detail/big_lanczos.hpp> 11 12 namespace boost{ namespace math{ 13 14 namespace lanczos{ 15 16 template <class T, class Policy> 17 struct lanczos; 18 19 template<class Backend, boost::multiprecision::expression_template_option ExpressionTemplates, class Policy> 20 struct lanczos<multiprecision::number<Backend, ExpressionTemplates>, Policy> 21 { 22 typedef typename boost::math::policies::precision<multiprecision::number<Backend, ExpressionTemplates>, Policy>::type precision_type; 23 typedef typename mpl::if_c< 24 precision_type::value <= 73, 25 lanczos13UDT, 26 typename mpl::if_c< 27 precision_type::value <= 122, 28 lanczos22UDT, 29 undefined_lanczos 30 >::type 31 >::type type; 32 }; 33 34 } // namespace lanczos 35 36 }} // namespaces 37 38 #endif 39 40