Eigen::internal::random_bits_impl< Scalar > Struct Template Reference

#include <RandomImpl.h>

Public Types

using RandomDevice = eigen_random_device
 
using RandomReturnType = typename RandomDevice::ReturnType
 

Static Public Member Functions

static EIGEN_DEVICE_FUNC Scalar run (int numRandomBits)
 

Static Public Attributes

static constexpr int kEntropy = RandomDevice::Entropy
 
static constexpr int kTotalBits = sizeof(Scalar) * CHAR_BIT
 

Member Typedef Documentation

◆ RandomDevice

◆ RandomReturnType

template<typename Scalar >
using Eigen::internal::random_bits_impl< Scalar >::RandomReturnType = typename RandomDevice::ReturnType

Member Function Documentation

◆ run()

template<typename Scalar >
static EIGEN_DEVICE_FUNC Scalar Eigen::internal::random_bits_impl< Scalar >::run ( int  numRandomBits)
inlinestatic
62  {
63  eigen_assert((numRandomBits >= 0) && (numRandomBits <= kTotalBits));
64  const Scalar mask = Scalar(-1) >> ((kTotalBits - numRandomBits) & (kTotalBits - 1));
65  Scalar randomBits = 0;
66  for (int shift = 0; shift < numRandomBits; shift += kEntropy) {
68  randomBits |= static_cast<Scalar>(r) << shift;
69  }
70  // clear the excess bits
71  randomBits &= mask;
72  return randomBits;
73  }
#define eigen_assert(x)
Definition: Macros.h:910
SCALAR Scalar
Definition: bench_gemm.cpp:45
r
Definition: UniformPSDSelfTest.py:20
static EIGEN_DEVICE_FUNC ReturnType run()
Definition: RandomImpl.h:50
typename RandomDevice::ReturnType RandomReturnType
Definition: RandomImpl.h:58
static constexpr int kEntropy
Definition: RandomImpl.h:59
static constexpr int kTotalBits
Definition: RandomImpl.h:60

References eigen_assert, Eigen::internal::random_bits_impl< Scalar >::kEntropy, Eigen::internal::random_bits_impl< Scalar >::kTotalBits, UniformPSDSelfTest::r, and Eigen::internal::eigen_random_device::run().

Referenced by Eigen::internal::getRandomBits().

Member Data Documentation

◆ kEntropy

template<typename Scalar >
constexpr int Eigen::internal::random_bits_impl< Scalar >::kEntropy = RandomDevice::Entropy
staticconstexpr

◆ kTotalBits

template<typename Scalar >
constexpr int Eigen::internal::random_bits_impl< Scalar >::kTotalBits = sizeof(Scalar) * CHAR_BIT
staticconstexpr

The documentation for this struct was generated from the following file: