197dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant//===----------------------------------------------------------------------===//
297dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant//
397dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant//                     The LLVM Compiler Infrastructure
497dc2f35c3d0d797ece43f5598023c6952144f37Howard 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.
797dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant//
897dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant//===----------------------------------------------------------------------===//
997dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant
1097dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// <random>
1197dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant
1297dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// template<class RealType = double>
1397dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// class chi_squared_distribution
1497dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant
1597dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// template <class CharT, class Traits, class RealType>
1697dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// basic_ostream<CharT, Traits>&
1797dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// operator<<(basic_ostream<CharT, Traits>& os,
1897dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant//            const chi_squared_distribution<RealType>& x);
1997dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant
2097dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// template <class CharT, class Traits, class RealType>
2197dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// basic_istream<CharT, Traits>&
2297dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant// operator>>(basic_istream<CharT, Traits>& is,
2397dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant//            chi_squared_distribution<RealType>& x);
2497dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant
2597dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant#include <random>
2697dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant#include <sstream>
2797dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant#include <cassert>
2897dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant
2997dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnantint main()
3097dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant{
3197dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant    {
3297dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        typedef std::chi_squared_distribution<> D;
3397dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        D d1(7);
3497dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        std::ostringstream os;
3597dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        os << d1;
3697dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        std::istringstream is(os.str());
3797dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        D d2;
3897dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        is >> d2;
3997dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant        assert(d1 == d2);
4097dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant    }
4197dc2f35c3d0d797ece43f5598023c6952144f37Howard Hinnant}
42