vSMC
vSMC: Scalable Monte Carlo
Classes | Typedefs

Random number generating using AES-NI. More...

Classes

class  vsmc::AESNIGenerator< ResultType, KeySeqType, Rounds, Blocks >
 RNG generator using AES-NI instructions. More...
 
class  vsmc::ARSKeySeq< T >
 Default ARSEngine key sequence generator. More...
 

Typedefs

using vsmc::AES128 = AES128Engine< std::uint32_t >
 AES-128 RNG engine with 32-bits integers output and default blocks. More...
 
using vsmc::AES128_1x32 = AES128Engine< std::uint32_t, 1 >
 AES-128 RNG engine with 32-bits integers output and 1 block. More...
 
using vsmc::AES128_1x64 = AES128Engine< std::uint64_t, 1 >
 AES-128 RNG engine with 64-bits integers output and 1 block. More...
 
using vsmc::AES128_2x32 = AES128Engine< std::uint32_t, 2 >
 AES-128 RNG engine with 32-bits integers output and 2 blocks. More...
 
using vsmc::AES128_2x64 = AES128Engine< std::uint64_t, 2 >
 AES-128 RNG engine with 64-bits integers output and 2 blocks. More...
 
using vsmc::AES128_4x32 = AES128Engine< std::uint32_t, 4 >
 AES-128 RNG engine with 32-bits integers output and 4 blocks. More...
 
using vsmc::AES128_4x64 = AES128Engine< std::uint64_t, 4 >
 AES-128 RNG engine with 64-bits integers output and 4 blocks. More...
 
using vsmc::AES128_64 = AES128Engine< std::uint64_t >
 AES-128 RNG engine with 64-bits integers output and default blocks. More...
 
using vsmc::AES128_8x32 = AES128Engine< std::uint32_t, 8 >
 AES-128 RNG engine with 32-bits integers output and 8 blocks. More...
 
using vsmc::AES128_8x64 = AES128Engine< std::uint64_t, 8 >
 AES-128 RNG engine with 64-bits integers output and 8 blocks. More...
 
template<typename ResultType , std::size_t Blocks = 4>
using vsmc::AES128Engine = AESNIEngine< ResultType, AES128KeySeq< ResultType, 10 >, 10, Blocks >
 AES-128 RNG engine. More...
 
template<typename ResultType , std::size_t Rounds>
using vsmc::AES128KeySeq = internal::AESKeySeq< ResultType, Rounds, internal::AES128KeySeqGenerator< ResultType >>
 AES128Engine key sequence generator. More...
 
using vsmc::AES192 = AES192Engine< std::uint32_t >
 AES-192 RNG engine with 32-bits integers output and default blocks. More...
 
using vsmc::AES192_1x32 = AES192Engine< std::uint32_t, 1 >
 AES-192 RNG engine with 32-bits integers output and 1 block. More...
 
using vsmc::AES192_1x64 = AES192Engine< std::uint64_t, 1 >
 AES-192 RNG engine with 64-bits integers output and 1 block. More...
 
using vsmc::AES192_2x32 = AES192Engine< std::uint32_t, 2 >
 AES-192 RNG engine with 32-bits integers output and 2 blocks. More...
 
using vsmc::AES192_2x64 = AES192Engine< std::uint64_t, 2 >
 AES-192 RNG engine with 64-bits integers output and 2 blocks. More...
 
using vsmc::AES192_4x32 = AES192Engine< std::uint32_t, 4 >
 AES-192 RNG engine with 32-bits integers output and 4 blocks. More...
 
using vsmc::AES192_4x64 = AES192Engine< std::uint64_t, 4 >
 AES-192 RNG engine with 64-bits integers output and 4 blocks. More...
 
using vsmc::AES192_64 = AES192Engine< std::uint64_t >
 AES-192 RNG engine with 64-bits integers output and default blocks. More...
 
using vsmc::AES192_8x32 = AES192Engine< std::uint32_t, 8 >
 AES-192 RNG engine with 32-bits integers output and 8 blocks. More...
 
using vsmc::AES192_8x64 = AES192Engine< std::uint64_t, 8 >
 AES-192 RNG engine with 64-bits integers output and 8 blocks. More...
 
template<typename ResultType , std::size_t Blocks = 4>
using vsmc::AES192Engine = AESNIEngine< ResultType, AES192KeySeq< ResultType, 12 >, 12, Blocks >
 AES-192 RNG engine. More...
 
template<typename ResultType , std::size_t Rounds>
using vsmc::AES192KeySeq = internal::AESKeySeq< ResultType, Rounds, internal::AES192KeySeqGenerator< ResultType >>
 AES192Engine key sequence generator. More...
 
using vsmc::AES256 = AES256Engine< std::uint32_t >
 AES-256 RNG engine with 32-bits integers output and default blocks. More...
 
using vsmc::AES256_1x32 = AES256Engine< std::uint32_t, 1 >
 AES-256 RNG engine with 32-bits integers output and 1 block. More...
 
using vsmc::AES256_1x64 = AES256Engine< std::uint64_t, 1 >
 AES-256 RNG engine with 64-bits integers output and 1 block. More...
 
using vsmc::AES256_2x32 = AES256Engine< std::uint32_t, 2 >
 AES-256 RNG engine with 32-bits integers output and 2 blocks. More...
 
using vsmc::AES256_2x64 = AES256Engine< std::uint64_t, 2 >
 AES-256 RNG engine with 64-bits integers output and 2 blocks. More...
 
using vsmc::AES256_4x32 = AES256Engine< std::uint32_t, 4 >
 AES-256 RNG engine with 32-bits integers output and 4 blocks. More...
 
using vsmc::AES256_4x64 = AES256Engine< std::uint64_t, 4 >
 AES-256 RNG engine with 64-bits integers output and 4 blocks. More...
 
using vsmc::AES256_64 = AES256Engine< std::uint64_t >
 AES-256 RNG engine with 64-bits integers output and default blocks. More...
 
using vsmc::AES256_8x32 = AES256Engine< std::uint32_t, 8 >
 AES-256 RNG engine with 32-bits integers output and 8 blocks. More...
 
using vsmc::AES256_8x64 = AES256Engine< std::uint64_t, 8 >
 AES-256 RNG engine with 64-bits integers output and 8 blocks. More...
 
template<typename ResultType , std::size_t Blocks = 4>
using vsmc::AES256Engine = AESNIEngine< ResultType, AES256KeySeq< ResultType, 14 >, 14, Blocks >
 AES-256 RNG engine. More...
 
template<typename ResultType , std::size_t Rounds>
using vsmc::AES256KeySeq = internal::AESKeySeq< ResultType, Rounds, internal::AES256KeySeqGenerator< ResultType >>
 AES256Engine key sequence generator. More...
 
template<typename ResultType , typename KeySeqType , std::size_t Rounds, std::size_t Blocks>
using vsmc::AESNIEngine = CounterEngine< AESNIGenerator< ResultType, KeySeqType, Rounds, Blocks >>
 RNG engine using AES-NI instructions. More...
 
using vsmc::ARS = ARSEngine< std::uint32_t >
 ARS RNG engine with 32-bits integers output, default blocks and default rounds. More...
 
using vsmc::ARS_1x32 = ARSEngine< std::uint32_t, 5, 1 >
 ARS RNG engine with 32-bits integers output, 1 block and default rounds. More...
 
using vsmc::ARS_1x64 = ARSEngine< std::uint64_t, 5, 1 >
 ARS RNG engine with 64-bits integers output, 1 block and default rounds. More...
 
using vsmc::ARS_2x32 = ARSEngine< std::uint32_t, 5, 2 >
 ARS RNG engine with 32-bits integers output, 2 blocks and default rounds. More...
 
using vsmc::ARS_2x64 = ARSEngine< std::uint64_t, 5, 2 >
 ARS RNG engine with 64-bits integers output, 2 blocks and default rounds. More...
 
using vsmc::ARS_4x32 = ARSEngine< std::uint32_t, 5, 4 >
 ARS RNG engine with 32-bits integers output, 4 blocks and default rounds. More...
 
using vsmc::ARS_4x64 = ARSEngine< std::uint64_t, 5, 4 >
 ARS RNG engine with 64-bits integers output, 4 blocks and default rounds. More...
 
using vsmc::ARS_64 = ARSEngine< std::uint64_t >
 ARS RNG engine with 64-bits integers output, default blocks and default rounds. More...
 
using vsmc::ARS_8x32 = ARSEngine< std::uint32_t, 5, 8 >
 ARS RNG engine with 32-bits integers output, 8 blocks and default rounds. More...
 
using vsmc::ARS_8x64 = ARSEngine< std::uint64_t, 5, 8 >
 ARS RNG engine with 64-bits integers output, 8 blocks and default rounds. More...
 
template<typename ResultType , std::size_t Rounds = 5, std::size_t Blocks = 4>
using vsmc::ARSEngine = AESNIEngine< ResultType, ARSKeySeq< ResultType >, Rounds, Blocks >
 ARS RNG engine. More...
 

Detailed Description

Random number generating using AES-NI.

Typedef Documentation

using vsmc::AES128 = typedef AES128Engine<std::uint32_t>

AES-128 RNG engine with 32-bits integers output and default blocks.

Definition at line 687 of file aes.hpp.

using vsmc::AES128_1x32 = typedef AES128Engine<std::uint32_t, 1>

AES-128 RNG engine with 32-bits integers output and 1 block.

Definition at line 655 of file aes.hpp.

using vsmc::AES128_1x64 = typedef AES128Engine<std::uint64_t, 1>

AES-128 RNG engine with 64-bits integers output and 1 block.

Definition at line 671 of file aes.hpp.

using vsmc::AES128_2x32 = typedef AES128Engine<std::uint32_t, 2>

AES-128 RNG engine with 32-bits integers output and 2 blocks.

Definition at line 659 of file aes.hpp.

using vsmc::AES128_2x64 = typedef AES128Engine<std::uint64_t, 2>

AES-128 RNG engine with 64-bits integers output and 2 blocks.

Definition at line 675 of file aes.hpp.

using vsmc::AES128_4x32 = typedef AES128Engine<std::uint32_t, 4>

AES-128 RNG engine with 32-bits integers output and 4 blocks.

Definition at line 663 of file aes.hpp.

using vsmc::AES128_4x64 = typedef AES128Engine<std::uint64_t, 4>

AES-128 RNG engine with 64-bits integers output and 4 blocks.

Definition at line 679 of file aes.hpp.

using vsmc::AES128_64 = typedef AES128Engine<std::uint64_t>

AES-128 RNG engine with 64-bits integers output and default blocks.

Definition at line 691 of file aes.hpp.

using vsmc::AES128_8x32 = typedef AES128Engine<std::uint32_t, 8>

AES-128 RNG engine with 32-bits integers output and 8 blocks.

Definition at line 667 of file aes.hpp.

using vsmc::AES128_8x64 = typedef AES128Engine<std::uint64_t, 8>

AES-128 RNG engine with 64-bits integers output and 8 blocks.

Definition at line 683 of file aes.hpp.

template<typename ResultType , std::size_t Blocks = 4>
using vsmc::AES128Engine = typedef AESNIEngine<ResultType, AES128KeySeq<ResultType, 10>, 10, Blocks>

AES-128 RNG engine.

Definition at line 639 of file aes.hpp.

template<typename ResultType , std::size_t Rounds>
using vsmc::AES128KeySeq = typedef internal::AESKeySeq<ResultType, Rounds, internal::AES128KeySeqGenerator<ResultType>>

AES128Engine key sequence generator.

Definition at line 621 of file aes.hpp.

using vsmc::AES192 = typedef AES192Engine<std::uint32_t>

AES-192 RNG engine with 32-bits integers output and default blocks.

Definition at line 727 of file aes.hpp.

using vsmc::AES192_1x32 = typedef AES192Engine<std::uint32_t, 1>

AES-192 RNG engine with 32-bits integers output and 1 block.

Definition at line 695 of file aes.hpp.

using vsmc::AES192_1x64 = typedef AES192Engine<std::uint64_t, 1>

AES-192 RNG engine with 64-bits integers output and 1 block.

Definition at line 711 of file aes.hpp.

using vsmc::AES192_2x32 = typedef AES192Engine<std::uint32_t, 2>

AES-192 RNG engine with 32-bits integers output and 2 blocks.

Definition at line 699 of file aes.hpp.

using vsmc::AES192_2x64 = typedef AES192Engine<std::uint64_t, 2>

AES-192 RNG engine with 64-bits integers output and 2 blocks.

Definition at line 715 of file aes.hpp.

using vsmc::AES192_4x32 = typedef AES192Engine<std::uint32_t, 4>

AES-192 RNG engine with 32-bits integers output and 4 blocks.

Definition at line 703 of file aes.hpp.

using vsmc::AES192_4x64 = typedef AES192Engine<std::uint64_t, 4>

AES-192 RNG engine with 64-bits integers output and 4 blocks.

Definition at line 719 of file aes.hpp.

using vsmc::AES192_64 = typedef AES192Engine<std::uint64_t>

AES-192 RNG engine with 64-bits integers output and default blocks.

Definition at line 731 of file aes.hpp.

using vsmc::AES192_8x32 = typedef AES192Engine<std::uint32_t, 8>

AES-192 RNG engine with 32-bits integers output and 8 blocks.

Definition at line 707 of file aes.hpp.

using vsmc::AES192_8x64 = typedef AES192Engine<std::uint64_t, 8>

AES-192 RNG engine with 64-bits integers output and 8 blocks.

Definition at line 723 of file aes.hpp.

template<typename ResultType , std::size_t Blocks = 4>
using vsmc::AES192Engine = typedef AESNIEngine<ResultType, AES192KeySeq<ResultType, 12>, 12, Blocks>

AES-192 RNG engine.

Definition at line 645 of file aes.hpp.

template<typename ResultType , std::size_t Rounds>
using vsmc::AES192KeySeq = typedef internal::AESKeySeq<ResultType, Rounds, internal::AES192KeySeqGenerator<ResultType>>

AES192Engine key sequence generator.

Definition at line 627 of file aes.hpp.

using vsmc::AES256 = typedef AES256Engine<std::uint32_t>

AES-256 RNG engine with 32-bits integers output and default blocks.

Definition at line 767 of file aes.hpp.

using vsmc::AES256_1x32 = typedef AES256Engine<std::uint32_t, 1>

AES-256 RNG engine with 32-bits integers output and 1 block.

Definition at line 735 of file aes.hpp.

using vsmc::AES256_1x64 = typedef AES256Engine<std::uint64_t, 1>

AES-256 RNG engine with 64-bits integers output and 1 block.

Definition at line 751 of file aes.hpp.

using vsmc::AES256_2x32 = typedef AES256Engine<std::uint32_t, 2>

AES-256 RNG engine with 32-bits integers output and 2 blocks.

Definition at line 739 of file aes.hpp.

using vsmc::AES256_2x64 = typedef AES256Engine<std::uint64_t, 2>

AES-256 RNG engine with 64-bits integers output and 2 blocks.

Definition at line 755 of file aes.hpp.

using vsmc::AES256_4x32 = typedef AES256Engine<std::uint32_t, 4>

AES-256 RNG engine with 32-bits integers output and 4 blocks.

Definition at line 743 of file aes.hpp.

using vsmc::AES256_4x64 = typedef AES256Engine<std::uint64_t, 4>

AES-256 RNG engine with 64-bits integers output and 4 blocks.

Definition at line 759 of file aes.hpp.

using vsmc::AES256_64 = typedef AES256Engine<std::uint64_t>

AES-256 RNG engine with 64-bits integers output and default blocks.

Definition at line 771 of file aes.hpp.

using vsmc::AES256_8x32 = typedef AES256Engine<std::uint32_t, 8>

AES-256 RNG engine with 32-bits integers output and 8 blocks.

Definition at line 747 of file aes.hpp.

using vsmc::AES256_8x64 = typedef AES256Engine<std::uint64_t, 8>

AES-256 RNG engine with 64-bits integers output and 8 blocks.

Definition at line 763 of file aes.hpp.

template<typename ResultType , std::size_t Blocks = 4>
using vsmc::AES256Engine = typedef AESNIEngine<ResultType, AES256KeySeq<ResultType, 14>, 14, Blocks>

AES-256 RNG engine.

Definition at line 651 of file aes.hpp.

template<typename ResultType , std::size_t Rounds>
using vsmc::AES256KeySeq = typedef internal::AESKeySeq<ResultType, Rounds, internal::AES256KeySeqGenerator<ResultType>>

AES256Engine key sequence generator.

Definition at line 633 of file aes.hpp.

template<typename ResultType , typename KeySeqType , std::size_t Rounds, std::size_t Blocks>
using vsmc::AESNIEngine = typedef CounterEngine<AESNIGenerator<ResultType, KeySeqType, Rounds, Blocks>>

RNG engine using AES-NI instructions.

Definition at line 194 of file aes_ni.hpp.

using vsmc::ARS = typedef ARSEngine<std::uint32_t>

ARS RNG engine with 32-bits integers output, default blocks and default rounds.

Definition at line 171 of file ars.hpp.

using vsmc::ARS_1x32 = typedef ARSEngine<std::uint32_t, 5 , 1>

ARS RNG engine with 32-bits integers output, 1 block and default rounds.

Definition at line 131 of file ars.hpp.

using vsmc::ARS_1x64 = typedef ARSEngine<std::uint64_t, 5 , 1>

ARS RNG engine with 64-bits integers output, 1 block and default rounds.

Definition at line 151 of file ars.hpp.

using vsmc::ARS_2x32 = typedef ARSEngine<std::uint32_t, 5 , 2>

ARS RNG engine with 32-bits integers output, 2 blocks and default rounds.

Definition at line 136 of file ars.hpp.

using vsmc::ARS_2x64 = typedef ARSEngine<std::uint64_t, 5 , 2>

ARS RNG engine with 64-bits integers output, 2 blocks and default rounds.

Definition at line 156 of file ars.hpp.

using vsmc::ARS_4x32 = typedef ARSEngine<std::uint32_t, 5 , 4>

ARS RNG engine with 32-bits integers output, 4 blocks and default rounds.

Definition at line 141 of file ars.hpp.

using vsmc::ARS_4x64 = typedef ARSEngine<std::uint64_t, 5 , 4>

ARS RNG engine with 64-bits integers output, 4 blocks and default rounds.

Definition at line 161 of file ars.hpp.

using vsmc::ARS_64 = typedef ARSEngine<std::uint64_t>

ARS RNG engine with 64-bits integers output, default blocks and default rounds.

Definition at line 176 of file ars.hpp.

using vsmc::ARS_8x32 = typedef ARSEngine<std::uint32_t, 5 , 8>

ARS RNG engine with 32-bits integers output, 8 blocks and default rounds.

Definition at line 146 of file ars.hpp.

using vsmc::ARS_8x64 = typedef ARSEngine<std::uint64_t, 5 , 8>

ARS RNG engine with 64-bits integers output, 8 blocks and default rounds.

Definition at line 166 of file ars.hpp.

template<typename ResultType , std::size_t Rounds = 5, std::size_t Blocks = 4>
using vsmc::ARSEngine = typedef AESNIEngine<ResultType, ARSKeySeq<ResultType>, Rounds, Blocks>

ARS RNG engine.

Definition at line 126 of file ars.hpp.