134e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant//===----------------------------------------------------------------------===//
234e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant//
334e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant//                     The LLVM Compiler Infrastructure
434e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant//
5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
734e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant//
834e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant//===----------------------------------------------------------------------===//
934e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant
1034e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant// <random>
1134e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant
1234e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant// template<class IntType = int>
1334e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant// class geometric_distribution
1434e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant// {
1534e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant//     class param_type;
1634e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant
1734e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant#include <random>
1834e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant#include <limits>
1934e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant#include <cassert>
2034e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant
2134e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnantint main()
2234e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant{
2334e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant    {
2434e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant        typedef std::geometric_distribution<> D;
2534e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant        typedef D::param_type param_type;
2634e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant        param_type p0(.7);
2734e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant        param_type p;
2834e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant        p = p0;
2934e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant        assert(p.p() == .7);
3034e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant    }
3134e8a57b76d3340fd0402becc7d7806612c9691fHoward Hinnant}
32