1d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant//===----------------------------------------------------------------------===//
2d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant//
3d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant//                     The LLVM Compiler Infrastructure
4d7d01132954e05ba41137195f26a265e7e255e6aHoward 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.
7d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant//
8d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant//===----------------------------------------------------------------------===//
9d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant
10d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// <random>
11d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant
12d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// template<class RealType = double>
13d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// class cauchy_distribution
14d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant
15d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// template <class CharT, class Traits, class RealType>
16d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// basic_ostream<CharT, Traits>&
17d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// operator<<(basic_ostream<CharT, Traits>& os,
18d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant//            const cauchy_distribution<RealType>& x);
19d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant
20d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// template <class CharT, class Traits, class RealType>
21d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// basic_istream<CharT, Traits>&
22d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant// operator>>(basic_istream<CharT, Traits>& is,
23d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant//            cauchy_distribution<RealType>& x);
24d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant
25d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant#include <random>
26d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant#include <sstream>
27d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant#include <cassert>
28d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant
29d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnantint main()
30d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant{
31d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant    {
32d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        typedef std::cauchy_distribution<> D;
33d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        D d1(7.5, 5.5);
34d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        std::ostringstream os;
35d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        os << d1;
36d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        std::istringstream is(os.str());
37d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        D d2;
38d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        is >> d2;
39d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant        assert(d1 == d2);
40d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant    }
41d7d01132954e05ba41137195f26a265e7e255e6aHoward Hinnant}
42