1321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant//===----------------------------------------------------------------------===//
2321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant//
3321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant//                     The LLVM Compiler Infrastructure
4321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward 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.
7321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant//
8321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant//===----------------------------------------------------------------------===//
9321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant
10321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// <random>
11321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant
12321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// template<class RealType = double>
13321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// class student_t_distribution
14321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant
15321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// template <class CharT, class Traits, class RealType>
16321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// basic_ostream<CharT, Traits>&
17321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// operator<<(basic_ostream<CharT, Traits>& os,
18321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant//            const student_t_distribution<RealType>& x);
19321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant
20321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// template <class CharT, class Traits, class RealType>
21321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// basic_istream<CharT, Traits>&
22321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant// operator>>(basic_istream<CharT, Traits>& is,
23321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant//            student_t_distribution<RealType>& x);
24321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant
25321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant#include <random>
26321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant#include <sstream>
27321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant#include <cassert>
28321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant
29321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnantint main()
30321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant{
31321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant    {
32321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        typedef std::student_t_distribution<> D;
33321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        D d1(7);
34321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        std::ostringstream os;
35321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        os << d1;
36321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        std::istringstream is(os.str());
37321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        D d2;
38321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        is >> d2;
39321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant        assert(d1 == d2);
40321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant    }
41321b4bb7ae50ef318c51ec58db550d7846c3edaeHoward Hinnant}
42