]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/multiprecision/include/boost/multiprecision/detail/big_lanczos.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / multiprecision / include / boost / multiprecision / detail / big_lanczos.hpp
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 && (precision_type::value <= 73),
25 lanczos13UDT,
26 typename mpl::if_c<
27 precision_type::value&& (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