diff -r fa7a3cc6effd -r 6d08f4a05d93 imgtools/imglib/boostlibrary/boost/tr1/detail/math_overloads.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imgtools/imglib/boostlibrary/boost/tr1/detail/math_overloads.hpp Fri Jun 25 18:11:34 2010 +0800 @@ -0,0 +1,58 @@ +// (C) Copyright John Maddock 2005. +// 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_TR1_MATH_OVERLOADS_HPP_INCLUDED +# define BOOST_TR1_MATH_OVERLOADS_HPP_INCLUDED +# include + +# ifndef BOOST_NO_SFINAE +# include +# include +# define BOOST_TR1_MATH_RETURN(RET) typename ::boost::enable_if< ::boost::is_convertible, RET >::type +# else +# define BOOST_TR1_MATH_RETURN(RET) RET +# endif + +# include +# include +# include + +namespace boost{ namespace tr1_detail{ + +template +struct largest_real +{ + typedef typename boost::mpl::if_< + boost::is_same, + long double, + typename boost::mpl::if_< + boost::is_same, + long double, + typename boost::mpl::if_< + boost::is_same, + double, + typename boost::mpl::if_< + boost::is_same, + double, + float + >::type + >::type + >::type + >::type type; +}; + +template +struct promote_to_real +{ + typedef typename largest_real< + typename boost::mpl::if_< boost::is_floating_point, T, double>::type, + typename boost::mpl::if_< boost::is_floating_point, U, double>::type + >::type type; +}; + +} } + +#endif +