diff options
author | Stefan Radomski <github@mintwerk.de> | 2017-05-19 08:49:52 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2017-05-19 08:49:52 (GMT) |
commit | 747781cbebe22efb4f2efb8f3269320962791914 (patch) | |
tree | 0c6df03ea42971d04695f3f6b295fc18c9113699 /contrib/src/boost/random/variate_generator.hpp | |
parent | 827bd207b54839dfa3d24c1b65afb638b9b5cd0e (diff) | |
download | uscxml-747781cbebe22efb4f2efb8f3269320962791914.zip uscxml-747781cbebe22efb4f2efb8f3269320962791914.tar.gz uscxml-747781cbebe22efb4f2efb8f3269320962791914.tar.bz2 |
Worked on issue 131
Update boost
Spent a mutex for UUIDgen
Diffstat (limited to 'contrib/src/boost/random/variate_generator.hpp')
-rw-r--r-- | contrib/src/boost/random/variate_generator.hpp | 244 |
1 files changed, 122 insertions, 122 deletions
diff --git a/contrib/src/boost/random/variate_generator.hpp b/contrib/src/boost/random/variate_generator.hpp index 6d5aac4..e5ddb03 100644 --- a/contrib/src/boost/random/variate_generator.hpp +++ b/contrib/src/boost/random/variate_generator.hpp @@ -1,122 +1,122 @@ -/* boost random/variate_generator.hpp header file - * - * Copyright Jens Maurer 2002 - * Copyright Steven Watanabe 2011 - * 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$ - * - */ - -#ifndef BOOST_RANDOM_RANDOM_GENERATOR_HPP -#define BOOST_RANDOM_RANDOM_GENERATOR_HPP - -#include <boost/random/detail/ptr_helper.hpp> - -#include <boost/random/detail/disable_warnings.hpp> - -namespace boost { - -/// \cond hide_private_members - -namespace random { - -///\endcond - -/** - * A random variate generator is used to join a random number - * generator together with a random number distribution. - * Boost.Random provides a vast choice of \generators as well - * as \distributions. - * - * The argument for the template parameter Engine shall be of - * the form U, U&, or U*, where U models a - * \uniform_random_number_generator. Then, the member - * engine_value_type names U (not the pointer or reference to U). - * - * Specializations of @c variate_generator satisfy the - * requirements of CopyConstructible. They also satisfy the - * requirements of Assignable unless the template parameter - * Engine is of the form U&. - * - * The complexity of all functions specified in this section - * is constant. No function described in this section except - * the constructor throws an exception. - */ -template<class Engine, class Distribution> -class variate_generator -{ -private: - typedef boost::random::detail::ptr_helper<Engine> helper_type; -public: - typedef typename helper_type::value_type engine_value_type; - typedef Engine engine_type; - typedef Distribution distribution_type; - typedef typename Distribution::result_type result_type; - - /** - * Constructs a @c variate_generator object with the associated - * \uniform_random_number_generator eng and the associated - * \random_distribution d. - * - * Throws: If and what the copy constructor of Engine or - * Distribution throws. - */ - variate_generator(Engine e, Distribution d) - : _eng(e), _dist(d) { } - - /** Returns: distribution()(engine()) */ - result_type operator()() { return _dist(engine()); } - /** - * Returns: distribution()(engine(), value). - */ - template<class T> - result_type operator()(const T& value) { return _dist(engine(), value); } - - /** - * Returns: A reference to the associated uniform random number generator. - */ - engine_value_type& engine() { return helper_type::ref(_eng); } - /** - * Returns: A reference to the associated uniform random number generator. - */ - const engine_value_type& engine() const { return helper_type::ref(_eng); } - - /** Returns: A reference to the associated \random_distribution. */ - distribution_type& distribution() { return _dist; } - /** - * Returns: A reference to the associated random distribution. - */ - const distribution_type& distribution() const { return _dist; } - - /** - * Precondition: distribution().min() is well-formed - * - * Returns: distribution().min() - */ - result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (distribution().min)(); } - /** - * Precondition: distribution().max() is well-formed - * - * Returns: distribution().max() - */ - result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (distribution().max)(); } - -private: - Engine _eng; - distribution_type _dist; -}; - -} // namespace random - -using random::variate_generator; - -} // namespace boost - -#include <boost/random/detail/enable_warnings.hpp> - -#endif // BOOST_RANDOM_RANDOM_GENERATOR_HPP +/* boost random/variate_generator.hpp header file
+ *
+ * Copyright Jens Maurer 2002
+ * Copyright Steven Watanabe 2011
+ * 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$
+ *
+ */
+
+#ifndef BOOST_RANDOM_RANDOM_GENERATOR_HPP
+#define BOOST_RANDOM_RANDOM_GENERATOR_HPP
+
+#include <boost/random/detail/ptr_helper.hpp>
+
+#include <boost/random/detail/disable_warnings.hpp>
+
+namespace boost {
+
+/// \cond hide_private_members
+
+namespace random {
+
+///\endcond
+
+/**
+ * A random variate generator is used to join a random number
+ * generator together with a random number distribution.
+ * Boost.Random provides a vast choice of \generators as well
+ * as \distributions.
+ *
+ * The argument for the template parameter Engine shall be of
+ * the form U, U&, or U*, where U models a
+ * \uniform_random_number_generator. Then, the member
+ * engine_value_type names U (not the pointer or reference to U).
+ *
+ * Specializations of @c variate_generator satisfy the
+ * requirements of CopyConstructible. They also satisfy the
+ * requirements of Assignable unless the template parameter
+ * Engine is of the form U&.
+ *
+ * The complexity of all functions specified in this section
+ * is constant. No function described in this section except
+ * the constructor throws an exception.
+ */
+template<class Engine, class Distribution>
+class variate_generator
+{
+private:
+ typedef boost::random::detail::ptr_helper<Engine> helper_type;
+public:
+ typedef typename helper_type::value_type engine_value_type;
+ typedef Engine engine_type;
+ typedef Distribution distribution_type;
+ typedef typename Distribution::result_type result_type;
+
+ /**
+ * Constructs a @c variate_generator object with the associated
+ * \uniform_random_number_generator eng and the associated
+ * \random_distribution d.
+ *
+ * Throws: If and what the copy constructor of Engine or
+ * Distribution throws.
+ */
+ variate_generator(Engine e, Distribution d)
+ : _eng(e), _dist(d) { }
+
+ /** Returns: distribution()(engine()) */
+ result_type operator()() { return _dist(engine()); }
+ /**
+ * Returns: distribution()(engine(), value).
+ */
+ template<class T>
+ result_type operator()(const T& value) { return _dist(engine(), value); }
+
+ /**
+ * Returns: A reference to the associated uniform random number generator.
+ */
+ engine_value_type& engine() { return helper_type::ref(_eng); }
+ /**
+ * Returns: A reference to the associated uniform random number generator.
+ */
+ const engine_value_type& engine() const { return helper_type::ref(_eng); }
+
+ /** Returns: A reference to the associated \random_distribution. */
+ distribution_type& distribution() { return _dist; }
+ /**
+ * Returns: A reference to the associated random distribution.
+ */
+ const distribution_type& distribution() const { return _dist; }
+
+ /**
+ * Precondition: distribution().min() is well-formed
+ *
+ * Returns: distribution().min()
+ */
+ result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (distribution().min)(); }
+ /**
+ * Precondition: distribution().max() is well-formed
+ *
+ * Returns: distribution().max()
+ */
+ result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (distribution().max)(); }
+
+private:
+ Engine _eng;
+ distribution_type _dist;
+};
+
+} // namespace random
+
+using random::variate_generator;
+
+} // namespace boost
+
+#include <boost/random/detail/enable_warnings.hpp>
+
+#endif // BOOST_RANDOM_RANDOM_GENERATOR_HPP
|