$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: pbristow_at_[hidden]
Date: 2007-09-12 05:40:10
Author: pbristow
Date: 2007-09-12 05:40:10 EDT (Wed, 12 Sep 2007)
New Revision: 39209
URL: http://svn.boost.org/trac/boost/changeset/39209
Log:
added check location and check_x (random deviate)
and changed check scale to not permit 0
Text files modified: 
   sandbox/math_toolkit/boost/math/distributions/detail/common_error_handling.hpp |    40 ++++++++++++++++++++++++++++++++++++++--
   1 files changed, 38 insertions(+), 2 deletions(-)
Modified: sandbox/math_toolkit/boost/math/distributions/detail/common_error_handling.hpp
==============================================================================
--- sandbox/math_toolkit/boost/math/distributions/detail/common_error_handling.hpp	(original)
+++ sandbox/math_toolkit/boost/math/distributions/detail/common_error_handling.hpp	2007-09-12 05:40:10 EDT (Wed, 12 Sep 2007)
@@ -11,6 +11,7 @@
 
 #include <boost/math/policies/error_handling.hpp>
 #include <boost/math/special_functions/fpclassify.hpp>
+// using boost::math::isfinite;
 
 namespace boost{ namespace math{ namespace detail
 {
@@ -48,8 +49,8 @@
       RealType* result,
       const Policy& pol)
 {
-   if((scale < 0) || !(boost::math::isfinite)(scale))
-   {
+   if((scale <= 0) || !(boost::math::isfinite)(scale))
+   { // Assume scale == 0 is NOT valid for any distribution.
       *result = policies::raise_domain_error<RealType>(
          function,
          "Scale parameter is %1%, but must be > 0 !", scale, pol);
@@ -58,6 +59,41 @@
    return true;
 }
 
+template <class RealType, class Policy>
+inline bool check_location(
+      const char* function,
+      RealType location,
+      RealType* result,
+      const Policy& pol)
+{
+   if(!(boost::math::isfinite)(location))
+   {
+      *result = policies::raise_domain_error<RealType>(
+         function,
+         "Location parameter is %1%, but must be finite!", location, pol);
+      return false;
+   }
+   return true;
+}
+
+template <class RealType, class Policy>
+inline bool check_x(
+      const char* function,
+      RealType location,
+      RealType* result,
+      const Policy& pol)
+{
+   if(!(boost::math::isfinite)(location))
+   {
+      *result = policies::raise_domain_error<RealType>(
+         function,
+         "Random variate x is %1%, but must be finite!", location, pol);
+      return false;
+   }
+   return true;
+}
+
+
 } // namespace detail
 } // namespace math
 } // namespace boost