1b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper//===----------------------------------------------------------------------===// 21ccdfb683ad6c7e59793136c3a657ddf131cafd1Mark Wielaard// 3de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard// The LLVM Compiler Infrastructure 4b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper// 5b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper// This file is dual licensed under the MIT and the University of Illinois Open 6de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard// Source Licenses. See LICENSE.TXT for details. 7de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard// 8361df7da6dfecd817b27e62b91752ac316d7cdd4Ulrich Drepper//===----------------------------------------------------------------------===// 9de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard 10de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard// <random> 11de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard 12de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard// template<class Engine, size_t w, class UIntType> 13de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard// class independent_bits_engine 14de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard 15de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard// independent_bits_engine(const independent_bits_engine&); 16de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard 17de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard#include <random> 18de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard#include <cassert> 19de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard 20de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaardvoid 21de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaardtest1() 22361df7da6dfecd817b27e62b91752ac316d7cdd4Ulrich Drepper{ 23361df7da6dfecd817b27e62b91752ac316d7cdd4Ulrich Drepper typedef std::independent_bits_engine<std::ranlux24, 32, unsigned> E; 24361df7da6dfecd817b27e62b91752ac316d7cdd4Ulrich Drepper E e1; 25361df7da6dfecd817b27e62b91752ac316d7cdd4Ulrich Drepper e1(); 26de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard E e2 = e1; 27de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard assert(e1 == e2); 28de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard assert(e1() == e2()); 29b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper E::result_type k = e1(); 30b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper assert(e1 != e2); 31b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper assert(e2() == k); 32b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper assert(e1 == e2); 33b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper} 34b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper 35b08d5a8fb42f4586d756068065186b5af7e48daUlrich Dreppervoid 36b08d5a8fb42f4586d756068065186b5af7e48daUlrich Dreppertest2() 37b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper{ 38b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper typedef std::independent_bits_engine<std::ranlux48, 64, unsigned long long> E; 39b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper E e1; 40b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper e1(); 41b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper E e2 = e1; 421ccdfb683ad6c7e59793136c3a657ddf131cafd1Mark Wielaard assert(e1 == e2); 43b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper assert(e1() == e2()); 44b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper E::result_type k = e1(); 45b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper assert(e1 != e2); 46b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper assert(e2() == k); 47b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper assert(e1 == e2); 48b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper} 49b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper 50b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepperint main() 51b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper{ 52b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper test1(); 53b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper test2(); 54b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper} 55b08d5a8fb42f4586d756068065186b5af7e48daUlrich Drepper