diff -r 000000000000 -r e4d67989cc36 ossrv_pub/boost_apis/boost/random/uniform_real.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ossrv_pub/boost_apis/boost/random/uniform_real.hpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,83 @@ +/* boost random/uniform_real.hpp header file + * + * Copyright Jens Maurer 2000-2001 + * Distributed under 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) + * + * See http://www.boost.org for most recent version including documentation. + * + * $Id: uniform_real.hpp,v 1.17 2005/01/28 15:04:17 dgregor Exp $ + * + * Revision history + * 2001-04-08 added min +#include +#include +#include +#include + +namespace boost { + +// uniform distribution on a real range +template +class uniform_real +{ +public: + typedef RealType input_type; + typedef RealType result_type; + + explicit uniform_real(RealType min = RealType(0), + RealType max = RealType(1)) + : _min(min), _max(max) + { +#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS + BOOST_STATIC_ASSERT(!std::numeric_limits::is_integer); +#endif + assert(min < max); + } + + // compiler-generated copy ctor and assignment operator are fine + + result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _min; } + result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _max; } + void reset() { } + + template + result_type operator()(Engine& eng) { + return static_cast(eng() - eng.min BOOST_PREVENT_MACRO_SUBSTITUTION()) + / static_cast(eng.max BOOST_PREVENT_MACRO_SUBSTITUTION() - eng.min BOOST_PREVENT_MACRO_SUBSTITUTION()) + * (_max - _min) + _min; + } + +#if !defined(BOOST_NO_OPERATORS_IN_NAMESPACE) && !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) + template + friend std::basic_ostream& + operator<<(std::basic_ostream& os, const uniform_real& ud) + { + os << ud._min << " " << ud._max; + return os; + } + + template + friend std::basic_istream& + operator>>(std::basic_istream& is, uniform_real& ud) + { + is >> std::ws >> ud._min >> std::ws >> ud._max; + return is; + } +#endif + +private: + RealType _min, _max; +}; + +} // namespace boost + +#endif // BOOST_RANDOM_UNIFORM_REAL_HPP