prrng 1.12.1
Loading...
Searching...
No Matches
prrng::pcg32_array_cumsum< Data, Index > Class Template Reference

Array of generators of a random cumulative sum, see prrng::pcg32_cumsum(). More...

#include <prrng.h>

Inheritance diagram for prrng::pcg32_array_cumsum< Data, Index >:
prrng::pcg32_arrayBase_cumsum< pcg32_index_array, Data, Index > prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, is_cumsum >

Public Member Functions

template<class S , class T , class U >
 pcg32_array_cumsum (const S &shape, const T &initstate, const U &initseq, enum distribution distribution, const std::vector< double > &parameters, const alignment &align=alignment())
 
- Public Member Functions inherited from prrng::pcg32_arrayBase_cumsum< pcg32_index_array, Data, Index >
void align (const T &target)
 Align the chunk to encompass a target value.
 
void align (size_t i, double target)
 Align the chunk to encompass a target value.
 
void restore (const S &state, const V &value, const T &index)
 Restore a specific state in the cumulative sum.
 
bool contains (const T &target) const
 Check if the chunk contains a target.
 
- Public Member Functions inherited from prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, is_cumsum >
 pcg32_arrayBase_chunkBase (const pcg32_arrayBase_chunkBase &other)
 Copy constructor.
 
void operator= (const pcg32_arrayBase_chunkBase &other)
 Copy constructor.
 
template<class T >
pcg32_arrayBase_chunkBaseoperator+= (const T &values)
 Add values to each chunk.
 
template<class T >
pcg32_arrayBase_chunkBaseoperator-= (const T &values)
 Subtract values from each chunk.
 
bool is_extendible () const
 true if the chunk is extendible.
 
size_type chunk_size () const
 Size of the chunk per generator.
 
const Generator & generators () const
 Reference to the underlying generators.
 
const Data & data () const
 The current chunk of the cumsum of random numbers.
 
void set_data (const Data &data)
 Overwrite the current chunk of the cumsum of random numbers.
 
const Index & start () const
 Global index of the first element in the chunk.
 
void set_start (const Index &index)
 Set global index of the first element in the chunk.
 
void align_at (const Index &index)
 Get the index random number, which index specified per generator.
 
Index index_at_align () const
 Global index of target (the last time prrng::pcg32_cumsum::align() was called).
 
const Index & chunk_index_at_align () const
 Index of target relative to the beginning of the chunk (the last time prrng::pcg32_cumsum::align() was called).
 
template<class R >
void left_of_align (R &ret) const
 Return the value of the cumsum left of the target (the last time prrng::pcg32_cumsum::align() was called).
 
template<class R >
void right_of_align (R &ret) const
 Return the value of the cumsum right of the target (the last time prrng::pcg32_cumsum::align() was called).
 
template<class R >
left_of_align () const
 Return the value of the cumsum left of the target (the last time prrng::pcg32_cumsum::align() was called).
 
template<class R >
right_of_align () const
 Return the value of the cumsum right of the target (the last time prrng::pcg32_cumsum::align() was called).
 
template<class R , class T >
state_at (const T &index)
 The current "state" of the generator.
 

Additional Inherited Members

- Public Types inherited from prrng::pcg32_arrayBase_cumsum< pcg32_index_array, Data, Index >
using size_type = typename Data::size_type
 Size type of the data container.
 
- Public Types inherited from prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, is_cumsum >
using size_type = typename Data::size_type
 Size type of the data container.
 
- Protected Member Functions inherited from prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, is_cumsum >
template<class S , class T , class U >
void init (const S &shape, const T &initstate, const U &initseq, enum distribution distribution, const std::vector< double > &parameters, const alignment &align=alignment())
 Constructor.
 
void auto_functions ()
 Set draw function.
 
void copy_from (const pcg32_arrayBase_chunkBase &other)
 Copy constructor.
 
- Protected Attributes inherited from prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, is_cumsum >
Generator m_gen
 Array of generators.
 
Data m_data
 Data container.
 
std::vector< std::function< xt::xtensor< double, 1 >(size_t)> > m_draw
 Function to draw the next chunk of n random numbers starting from the curent state of the generator.
 
std::vector< std::function< double(size_t)> > m_sum
 Function to get the cumsum of n random numbers starting from the curent state of the generator (used to skip allocating an list of size n).
 
bool m_extendible
 Signal if the drawing functions are specified, implying that the chunk can be changed.
 
alignment m_align
 alignment settings, see prrng::alignment().
 
distribution m_distro
 Distribution name, see prrng::distribution().
 
std::array< double, 3 > m_param
 Distribution parameters.
 
Index m_start
 Start index of the chunk.
 
Index m_i
 Last known index of target in align.
 
size_t m_n
 Size of the chunk.
 

Detailed Description

template<class Data, class Index>
class prrng::pcg32_array_cumsum< Data, Index >

Array of generators of a random cumulative sum, see prrng::pcg32_cumsum().

A chunk is kept in memory for each generator, whereby all chunks are assembled to one big array. For example, if initstate.shape == [a, b, c] generators are used, and the shape of the chunk shape = [m, n], the shape of the chunk kept in memory [a, b, c, m, n]. The random number generated by the pcg32 algorithm.

Template Parameters
DataStorage of the chunk ('data'), e.g. xt::xarray<double>.
IndexStorage of a 'column' index in the chunk, e.g. xt::xarray<ptrdiff_t>.

Definition at line 6528 of file prrng.h.

Constructor & Destructor Documentation

◆ pcg32_array_cumsum()

template<class Data , class Index >
template<class S , class T , class U >
prrng::pcg32_array_cumsum< Data, Index >::pcg32_array_cumsum ( const S &  shape,
const T &  initstate,
const U &  initseq,
enum distribution  distribution,
const std::vector< double > &  parameters,
const alignment align = alignment() 
)
inline
Parameters
shapeShape of the chunk to keep in memory per generator.
initstateState initiator for every item.
initseqSequence initiator for every item.
Parameters
distributionDistribution.
parametersParameters for the distribution: appended by the following defaults if needed.

Definition at line 6540 of file prrng.h.


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