diff DEPENDENCIES/generic/include/boost/multiprecision/detail/big_lanczos.hpp @ 16:2665513ce2d3

Add boost headers
author Chris Cannam
date Tue, 05 Aug 2014 11:11:38 +0100
parents
children c530137014c0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DEPENDENCIES/generic/include/boost/multiprecision/detail/big_lanczos.hpp	Tue Aug 05 11:11:38 2014 +0100
@@ -0,0 +1,46 @@
+
+//  Copyright (c) 2011 John Maddock
+//  Use, modification and distribution are subject to the
+//  Boost Software License, Version 1.0. (See accompanying file
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_MP_BIG_LANCZOS
+#define BOOST_MP_BIG_LANCZOS
+
+#include <boost/math/bindings/detail/big_lanczos.hpp>
+
+namespace boost{ namespace math{
+
+namespace lanczos{
+
+template <class T, class Policy>
+struct lanczos;
+
+template<class Backend, boost::multiprecision::expression_template_option ExpressionTemplates, class Policy>
+struct lanczos<multiprecision::number<Backend, ExpressionTemplates>, Policy>
+{
+   typedef typename boost::math::policies::precision<multiprecision::number<Backend, ExpressionTemplates>, Policy>::type precision_type;
+   typedef typename mpl::if_c<
+      precision_type::value <= 73,
+      lanczos13UDT,
+      typename mpl::if_c<
+         precision_type::value <= 122,
+         lanczos22UDT,
+         typename mpl::if_c<
+            precision_type::value <= 172,
+            lanczos31UDT,
+            typename mpl::if_c<
+               precision_type::value <= 372,
+               lanczos61UDT,
+               undefined_lanczos
+            >::type
+         >::type
+      >::type
+   >::type type;
+};
+
+} // namespace lanczos
+
+}} // namespaces
+
+#endif