• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  //===----------------------------------------------------------------------===//
2  //
3  //                     The LLVM Compiler Infrastructure
4  //
5  // This file is dual licensed under the MIT and the University of Illinois Open
6  // Source Licenses. See LICENSE.TXT for details.
7  //
8  //===----------------------------------------------------------------------===//
9  
10  // <random>
11  
12  // template<class UIntType, size_t w, size_t s, size_t r>
13  // class subtract_with_carry_engine;
14  
15  // void discard(unsigned long long z);
16  
17  #include <random>
18  #include <cassert>
19  
20  void
test1()21  test1()
22  {
23      std::ranlux24_base e1;
24      std::ranlux24_base e2 = e1;
25      assert(e1 == e2);
26      e1.discard(3);
27      assert(e1 != e2);
28      (void)e2();
29      (void)e2();
30      (void)e2();
31      assert(e1 == e2);
32  }
33  
34  void
test2()35  test2()
36  {
37      std::ranlux48_base e1;
38      std::ranlux48_base e2 = e1;
39      assert(e1 == e2);
40      e1.discard(3);
41      assert(e1 != e2);
42      (void)e2();
43      (void)e2();
44      (void)e2();
45      assert(e1 == e2);
46  }
47  
main()48  int main()
49  {
50      test1();
51      test2();
52  }
53