コード例 #1
0
ファイル: normal.cpp プロジェクト: JamesHirschorn/QFCL
int main()
{
    typedef qfcl::random::cpp_rand ENG;
    typedef qfcl::random::normal_box_muller_polar<> DIST1;
    typedef qfcl::random::normal_box_muller<> DIST2;
    typedef qfcl::random::normal_inversion<> DIST3;

    ENG eng;
    DIST1 dist1;
    DIST2 dist2;
    DIST3 dist3;
    
    
    qfcl::random::variate_generator< ENG, DIST1 > rng1(eng, dist1);
    qfcl::random::variate_generator< ENG, DIST2 > rng2(eng, dist2);
    qfcl::random::variate_generator< ENG, DIST3 > rng3(eng, dist3);
    
    for (int i=0; i<10; ++i) {
        std::cout << rng1() << " " << rng2() << " " << rng3() << std::endl;
    }

    return 0;
}
コード例 #2
0
ファイル: RNGTest.cpp プロジェクト: drazil1234/StreamCoding
TEST(AESCTRDRNG, SeedConsistency)
{
  AESCTRDRBG rng1("seed1", "seed1") ;
  AESCTRDRBG rng2("seed1", "seed1") ;
  AESCTRDRBG rng3("seed2", "seed1") ;
  AESCTRDRBG rng4("seed1", "seed2") ;
  AESCTRDRBG rng5("seed2", "seed2") ;
  AESCTRDRBG rng6("seed2", "seed2") ;

  std::vector<uint8_t> bits[6] ;
  for(int r=0;r<5;r++)
  {
    std::vector<uint8_t> tmp ;
    tmp = rng1.GetBits(128) ;
    bits[0].insert(bits[0].end(), tmp.begin(), tmp.end()) ;
    tmp = rng2.GetBits(128) ;
    bits[1].insert(bits[1].end(), tmp.begin(), tmp.end()) ;
    tmp = rng3.GetBits(128) ;
    bits[2].insert(bits[2].end(), tmp.begin(), tmp.end()) ;
    tmp = rng4.GetBits(128) ;
    bits[3].insert(bits[3].end(), tmp.begin(), tmp.end()) ;
    tmp = rng5.GetBits(128) ;
    bits[4].insert(bits[4].end(), tmp.begin(), tmp.end()) ;
    tmp = rng6.GetBits(128) ;
    bits[5].insert(bits[5].end(), tmp.begin(), tmp.end()) ;
  }

  ASSERT_EQ(bits[0], bits[1]) ;
  ASSERT_EQ(bits[4], bits[5]) ;
  ASSERT_NE(bits[1], bits[2]) ;
  ASSERT_NE(bits[1], bits[3]) ;
  ASSERT_NE(bits[1], bits[4]) ;
  ASSERT_NE(bits[2], bits[3]) ;
  ASSERT_NE(bits[2], bits[4]) ;
  ASSERT_NE(bits[3], bits[4]) ;
}