diff DEPENDENCIES/generic/include/boost/multiprecision/random.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
line wrap: on
line diff
--- a/DEPENDENCIES/generic/include/boost/multiprecision/random.hpp	Fri Sep 04 12:01:02 2015 +0100
+++ b/DEPENDENCIES/generic/include/boost/multiprecision/random.hpp	Mon Sep 07 11:12:49 2015 +0100
@@ -575,6 +575,16 @@
         tag_type());
 }
 
+template<class Engine, class Backend, boost::multiprecision::expression_template_option ExpressionTemplates>
+inline boost::multiprecision::number<Backend, ExpressionTemplates> generate_uniform_real(Engine& eng, const boost::multiprecision::number<Backend, ExpressionTemplates>& min_value, const boost::multiprecision::number<Backend, ExpressionTemplates>& max_value)
+{
+   if(max_value / 2 - min_value / 2 > (std::numeric_limits<boost::multiprecision::number<Backend, ExpressionTemplates> >::max)() / 2)
+      return 2 * generate_uniform_real(eng, boost::multiprecision::number<Backend, ExpressionTemplates>(min_value / 2), boost::multiprecision::number<Backend, ExpressionTemplates>(max_value / 2));
+   typedef typename Engine::result_type base_result;
+   return generate_uniform_real(eng, min_value, max_value,
+      boost::is_integral<base_result>());
+}
+
 } // detail