
Hi All,
template<typename T>
struct promote{};
template<>
struct promote<float> : mpl::identity<double>{};
template<>
struct promote<double> : mpl::identity<long double>{};
template<typename T> //T: float, double
struct fit_a_plus_b_to_range{
static T divider(T a, T b){
static const T mx = math::tools::max_value<T>();
static const T mi = math::tools::min_value<T>();
if(a > (mx - b)){
typedef typename promote<T>::type prom_t;
typedef numeric::converter