IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
ippl::random::randn< T, Dim > Struct Template Reference

Functor to generate random numbers from a normal distribution. More...

#include <Randn.h>

+ Collaboration diagram for ippl::random::randn< T, Dim >:

Public Types

using view_type = typename ippl::detail::ViewType< ippl::Vector< double, Dim >, 1 >::view_type
 
using GeneratorPool = typename Kokkos::Random_XorShift64_Pool<>
 

Public Member Functions

KOKKOS_INLINE_FUNCTION randn (view_type v_, GeneratorPool rand_pool_, T *mu_p, T *sd_p)
 Constructor for the randn functor.
 
KOKKOS_INLINE_FUNCTION randn (view_type v_, GeneratorPool rand_pool_)
 
KOKKOS_INLINE_FUNCTION const T & getMu (unsigned int idx) const
 Getter function for mean in idx dimension.
 
KOKKOS_INLINE_FUNCTION const T & getSd (unsigned int idx) const
 Getter function for the standard deviation in idx dimension.
 
KOKKOS_INLINE_FUNCTION void operator() (const size_t i) const
 Operator to generate random numbers.
 

Public Attributes

view_type v
 
GeneratorPool rand_pool
 
mu [Dim]
 
sd [Dim]
 

Detailed Description

template<typename T, unsigned Dim>
struct ippl::random::randn< T, Dim >

Functor to generate random numbers from a normal distribution.

This functor can be used to generates random numbers from a normal distribution with mean 0 and standard deviation 1.

Template Parameters
TData type of the random numbers.
GeneratorPoolType of the random number generator pool.
DimDimensionality of the random numbers.

Constructor & Destructor Documentation

◆ randn()

template<typename T , unsigned Dim>
KOKKOS_INLINE_FUNCTION ippl::random::randn< T, Dim >::randn ( view_type  v_,
GeneratorPool  rand_pool_,
T *  mu_p,
T *  sd_p 
)
inline

Constructor for the randn functor.

Parameters
v_Output view for the random numbers.
rand_pool_The random number generator pool.
muThe array of means in each dimension
sdThe array of standard deviation in each dimension

Member Function Documentation

◆ getMu()

template<typename T , unsigned Dim>
KOKKOS_INLINE_FUNCTION const T & ippl::random::randn< T, Dim >::getMu ( unsigned int  idx) const
inline

Getter function for mean in idx dimension.

Parameters
idxThe index indicating the dimension.

◆ getSd()

template<typename T , unsigned Dim>
KOKKOS_INLINE_FUNCTION const T & ippl::random::randn< T, Dim >::getSd ( unsigned int  idx) const
inline

Getter function for the standard deviation in idx dimension.

Parameters
idxThe index indicating the dimension.

◆ operator()()

template<typename T , unsigned Dim>
KOKKOS_INLINE_FUNCTION void ippl::random::randn< T, Dim >::operator() ( const size_t  i) const
inline

Operator to generate random numbers.

Parameters
iIndex for the random numbers.

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