EigenRand  0.5.0
 
Loading...
Searching...
No Matches
PacketRandomEngine.h File Reference
#include <array>
#include <random>
#include <type_traits>
#include "MorePacketMath.h"
#include <fstream>
Include dependency graph for PacketRandomEngine.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Eigen::Rand::MersenneTwister< Packet, _Nx, _Mx, _Rx, _Px, _Ux, _Dx, _Sx, _Bx, _Tx, _Cx, _Lx, _Fx >
 A vectorized version of Mersenne Twister Engine. More...
 

Namespaces

namespace  Eigen::Rand
 namespace for EigenRand
 

Typedefs

template<typename Packet >
using Eigen::Rand::Pmt19937_64 = MersenneTwister< Packet, 312, 156, 31, 0xb5026f5aa96619e9, 29, 0x5555555555555555, 17, 0x71d67fffeda60000, 37, 0xfff7eee000000000, 43, 6364136223846793005 >
 Alias of Eigen::Rand::MersenneTwister, equivalent to std::mt19937_64. More...
 
template<typename UIntType , typename BaseRng >
using Eigen::Rand::PacketRandomEngineAdaptor = ParallelRandomEngineAdaptor< UIntType, BaseRng, sizeof(typename BaseRng::result_type)/sizeof(uint64_t)>
 Scalar adaptor for random engines which generates packet. More...
 
template<typename UIntType , typename Rng >
using Eigen::Rand::UniversalRandomEngine = typename std::conditional< IsPacketRandomEngine< typename std::remove_reference< Rng >::type >::value, PacketRandomEngineAdaptor< UIntType, typename std::remove_reference< Rng >::type >, typename std::conditional< IsScalarFullBitRandomEngine< typename std::remove_reference< Rng >::type >::value, RandomEngineWrapper< typename std::remove_reference< Rng >::type >, void >::type >::type
 
using Eigen::Rand::Vmt19937_64 = std::mt19937_64
 same as std::mt19937_64 when EIGEN_DONT_VECTORIZE, Pmt19937_64<internal::Packet4i> when SSE2 enabled and Pmt19937_64<internal::Packet8i> when AVX2 enabled More...
 
template<typename UIntType = uint64_t>
using Eigen::Rand::P8_mt19937 = ParallelRandomEngineAdaptor< UIntType, Vmt19937_64, 8 >
 
using Eigen::Rand::P8_mt19937_64 = P8_mt19937< uint64_t >
 a vectorized mt19937_64 which generates 8 integers of 64bit simultaneously. It always yields the same value regardless of SIMD ISA.
 
using Eigen::Rand::P8_mt19937_64_32 = P8_mt19937< uint32_t >
 

Enumerations

enum class  RandomEngineType { none , scalar , scalar_fullbit , packet }
 

Functions

template<typename T >
auto test_integral_result_type(int) -> std::integral_constant< bool, std::is_integral< typename T::result_type >::value &&!(T::min()==0 &&(T auto Eigen::Rand::detail::test_integral_result_type (...) -> std::false_type
 
template<typename T >
auto test_integral_fullbit_result_type(int) -> std::integral_constant< bool, std::is_integral< typename T::result_type >::value &&T::min()==0 &&(T auto Eigen::Rand::detail::test_integral_fullbit_result_type (...) -> std::false_type
 
template<typename T >
auto Eigen::Rand::detail::test_intpacket_result_type (int) -> std::integral_constant< bool, internal::IsIntPacket< typename T::result_type >::value >
 
template<typename T >
auto Eigen::Rand::detail::test_intpacket_result_type (...) -> std::false_type
 
template<typename UIntType , typename Rng >
UniversalRandomEngine< UIntType, Rng > Eigen::Rand::makeUniversalRng (Rng &&rng)
 Helper function for making a UniversalRandomEngine. More...
 

Detailed Description

Author
bab2min (bab2m.nosp@m.in@g.nosp@m.mail..nosp@m.com)
Version
0.5.0
Date
2023-01-31