11#ifndef EIGEN_CXX11_TENSOR_TENSOR_RANDOM_H
12#define EIGEN_CXX11_TENSOR_TENSOR_RANDOM_H
20#if defined(EIGEN_GPU_COMPILE_PHASE)
28 return random<uint64_t>();
36 *state = current * 6364136223846793005ULL + (stream << 1 | 1);
38 return static_cast<unsigned>((current ^ (current >> 22)) >> (22 + (current >> 61)));
42 seed = seed ? seed : get_random_seed();
43 return seed * 6364136223846793005ULL + 0xda3e39cb94b95bdbULL;
52 return static_cast<T>(
rnd);
60 const uint16_t
half_bits =
static_cast<uint16_t
>(
rnd & 0x3ffu) | (
static_cast<uint16_t
>(15) << 10);
71 const uint16_t
half_bits =
static_cast<uint16_t
>(
rnd & 0x7fu) | (
static_cast<uint16_t
>(127) << 7);
88 result.raw |= (
static_cast<uint32_t
>(127) << 23);
108 result.raw |= (
static_cast<uint64_t
>(1023) << 52);
132 #ifdef EIGEN_USE_SYCL
151 m_state = other.m_state;
152 #ifdef EIGEN_USE_SYCL
159 #ifdef EIGEN_USE_SYCL
163 m_state += (
i * 6364136223846793005ULL);
175 #ifdef EIGEN_USE_SYCL
178 m_state += (
i * 6364136223846793005ULL);
190 mutable uint64_t m_state;
191 #ifdef EIGEN_USE_SYCL
196template <
typename Scalar>
201 ((
sizeof(
Scalar) +
sizeof(
float) - 1) /
sizeof(
float)),
217 const T x = u -
T(0.449871);
219 q =
x*
x +
y * (
T(0.196)*
y -
T(0.25472)*
x);
220 }
while (q >
T(0.27597) &&
245 #ifdef EIGEN_USE_SYCL
261 m_state = other.m_state;
269 #ifdef EIGEN_USE_SYCL
272 m_state += (
i * 6364136223846793005ULL);
284 #ifdef EIGEN_USE_SYCL
287 m_state += (
i * 6364136223846793005ULL);
299 mutable uint64_t m_state;
300 #ifdef EIGEN_USE_SYCL
306template <
typename Scalar>
Array< int, Dynamic, 1 > v
Definition Array_initializer_list_vector_cxx11.cpp:1
int i
Definition BiCGSTAB_step_by_step.cpp:9
#define EIGEN_UNROLL_LOOP
Definition Macros.h:1461
#define EIGEN_DEVICE_FUNC
Definition Macros.h:976
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
Eigen::Triplet< double > T
Definition Tutorial_sparse_example.cpp:6
SCALAR Scalar
Definition bench_gemm.cpp:46
Definition TensorRandom.h:238
static const bool PacketAccess
Definition TensorRandom.h:240
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE NormalRandomGenerator(uint64_t seed=0)
Definition TensorRandom.h:243
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(Index i) const
Definition TensorRandom.h:281
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE NormalRandomGenerator(const NormalRandomGenerator &other)
Definition TensorRandom.h:259
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T operator()(Index i) const
Definition TensorRandom.h:268
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
Definition gnuplot_common_settings.hh:12
dim3 threadIdx
Definition gpu_common.h:19
dim3 blockDim
Definition gpu_common.h:19
dim3 blockIdx
Definition gpu_common.h:19
const Scalar & y
Definition MathFunctions.h:821
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T RandomToTypeNormal(uint64_t *state, uint64_t stream)
Definition TensorRandom.h:209
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::half RandomToTypeUniform< Eigen::half >(uint64_t *state, uint64_t stream)
Definition TensorRandom.h:57
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float RandomToTypeUniform< float >(uint64_t *state, uint64_t stream)
Definition TensorRandom.h:78
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T RandomToTypeUniform(uint64_t *state, uint64_t stream)
Definition TensorRandom.h:50
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double RandomToTypeUniform< double >(uint64_t *state, uint64_t stream)
Definition TensorRandom.h:94
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::bfloat16 RandomToTypeUniform< Eigen::bfloat16 >(uint64_t *state, uint64_t stream)
Definition TensorRandom.h:67
::uint64_t uint64_t
Definition Meta.h:58
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T log(const T &x)
Definition MathFunctions.h:1489
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE internal::enable_if< NumTraits< T >::IsSigned||NumTraits< T >::IsComplex, typenameNumTraits< T >::Real >::type abs(const T &x)
Definition MathFunctions.h:1509
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
Definition BandTriangularSolver.h:13
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition NumTraits.h:233
Definition XprHelper.h:176
@ PacketAccess
Definition XprHelper.h:180
@ Cost
Definition XprHelper.h:179
Definition ForwardDeclarations.h:17
Definition GenericPacketMath.h:133
std::ptrdiff_t j
Definition tut_arithmetic_redux_minmax.cpp:2
Definition PacketMath.h:47