Eigen::internal::GaussianGenerator< T, Index, NumDims > Class Template Reference

#include <TensorFunctors.h>

Public Member Functions

EIGEN_DEVICE_FUNC GaussianGenerator (const array< T, NumDims > &means, const array< T, NumDims > &std_devs)
 
EIGEN_DEVICE_FUNC T operator() (const array< Index, NumDims > &coordinates) const
 

Static Public Attributes

static constexpr bool PacketAccess = false
 

Private Attributes

array< T, NumDims > m_means
 
array< T, NumDims > m_two_sigmas
 

Constructor & Destructor Documentation

◆ GaussianGenerator()

template<typename T , typename Index , size_t NumDims>
EIGEN_DEVICE_FUNC Eigen::internal::GaussianGenerator< T, Index, NumDims >::GaussianGenerator ( const array< T, NumDims > &  means,
const array< T, NumDims > &  std_devs 
)
inline
366  : m_means(means) {
368  for (size_t i = 0; i < NumDims; ++i) {
369  m_two_sigmas[i] = std_devs[i] * std_devs[i] * 2;
370  }
371  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
#define EIGEN_UNROLL_LOOP
Definition: Macros.h:1298
array< T, NumDims > m_means
Definition: TensorFunctors.h:384
array< T, NumDims > m_two_sigmas
Definition: TensorFunctors.h:385

References EIGEN_UNROLL_LOOP, i, and Eigen::internal::GaussianGenerator< T, Index, NumDims >::m_two_sigmas.

Member Function Documentation

◆ operator()()

template<typename T , typename Index , size_t NumDims>
EIGEN_DEVICE_FUNC T Eigen::internal::GaussianGenerator< T, Index, NumDims >::operator() ( const array< Index, NumDims > &  coordinates) const
inline
373  {
374  T tmp = T(0);
376  for (size_t i = 0; i < NumDims; ++i) {
377  T offset = coordinates[i] - m_means[i];
378  tmp += offset * offset / m_two_sigmas[i];
379  }
380  return numext::exp(-tmp);
381  }
Eigen::Triplet< double > T
Definition: EigenUnitTest.cpp:11
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T exp(const T &x)
Definition: MathFunctions.h:1424

References EIGEN_UNROLL_LOOP, Eigen::numext::exp(), i, Eigen::internal::GaussianGenerator< T, Index, NumDims >::m_means, Eigen::internal::GaussianGenerator< T, Index, NumDims >::m_two_sigmas, and tmp.

Member Data Documentation

◆ m_means

template<typename T , typename Index , size_t NumDims>
array<T, NumDims> Eigen::internal::GaussianGenerator< T, Index, NumDims >::m_means
private

◆ m_two_sigmas

template<typename T , typename Index , size_t NumDims>
array<T, NumDims> Eigen::internal::GaussianGenerator< T, Index, NumDims >::m_two_sigmas
private

◆ PacketAccess

template<typename T , typename Index , size_t NumDims>
constexpr bool Eigen::internal::GaussianGenerator< T, Index, NumDims >::PacketAccess = false
staticconstexpr

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