$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] [math][distributions] superfluous checking of parameters?
From: Thijs (M.A.) van den Berg (thijs_at_[hidden])
Date: 2011-10-29 05:56:14
The boost math distributions check validity of distribution the same parameters multiple times.
E.g. in normal.hpp, class normal_distribution, the constructor,
normal_distribution(RealType mean = 0, RealType sd = 1)
: m_mean(mean), m_sd(sd)
{ // Default is a 'standard' normal distribution N01.
static const char* function = "boost::math::normal_distribution<%1%>::normal_distribution";
RealType result;
detail::check_scale(function, sd, &result, Policy());
detail::check_location(function, mean, &result, Policy());
}
however, those are *again* checked in e.g. the pdf() non member function
inline RealType pdf(const normal_distribution<RealType, Policy>& dist, const RealType& x)
{
...
if(false == detail::check_scale(function, sd, &result, Policy()))
{
return result;
}
...
}
Why is that? It's done in a consistent way across all distributions. Can we remove the check inside the non member functions that are already checked in the constructor?