15f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant//===----------------------------------------------------------------------===//
25f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant//
35f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant//                     The LLVM Compiler Infrastructure
45f9b133e2cd3b000056bdda641b94ebb611d4653Howard 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.
75f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant//
85f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant//===----------------------------------------------------------------------===//
95f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant
105f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// <random>
115f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant
125f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// template<class IntType = int>
135f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// class binomial_distribution
145f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant
155f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// template <class charT, class traits>
165f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// basic_ostream<charT, traits>&
175f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// operator<<(basic_ostream<charT, traits>& os,
185f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant//            const binomial_distribution& x);
190e20cae1a5be18fba591cd884aa2a389b66a3f49Howard Hinnant//
205f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// template <class charT, class traits>
215f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// basic_istream<charT, traits>&
225f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant// operator>>(basic_istream<charT, traits>& is,
235f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant//            binomial_distribution& x);
245f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant
255f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant#include <random>
265f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant#include <sstream>
275f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant#include <cassert>
285f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant
295f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnantint main()
305f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant{
315f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant    {
325f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        typedef std::binomial_distribution<> D;
335f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        D d1(7, .25);
345f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        std::ostringstream os;
355f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        os << d1;
365f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        std::istringstream is(os.str());
375f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        D d2;
385f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        is >> d2;
395f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant        assert(d1 == d2);
405f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant    }
415f9b133e2cd3b000056bdda641b94ebb611d4653Howard Hinnant}
42