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