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

Array of generators of which a chunk of random numbers is kept in memory. More...

#include <prrng.h>

Inheritance diagram for prrng::pcg32_arrayBase_chunk< Generator, Data, Index >:
prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, false >

Public Types

using size_type = typename Data::size_type
 Size type of the data container.
 
using value_type = typename Data::value_type
 Value type of the data container.
 
- Public Types inherited from prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, false >
using size_type = typename Data::size_type
 Size type of the data container.
 

Public Member Functions

template<class S , class T >
void restore (const S &state, const T &index)
 Restore the generator somewhere in the sequence.
 
- Public Member Functions inherited from prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, false >
 pcg32_arrayBase_chunkBase (const pcg32_arrayBase_chunkBase &other)
 Copy constructor.
 
void operator= (const pcg32_arrayBase_chunkBase &other)
 Copy constructor.
 
pcg32_arrayBase_chunkBaseoperator+= (const T &values)
 Add values to each chunk.
 
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).
 
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).
 
left_of_align () const
 Return the value of the cumsum left of the target (the last time prrng::pcg32_cumsum::align() was called).
 
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).
 
right_of_align () const
 Return the value of the cumsum right of the target (the last time prrng::pcg32_cumsum::align() was called).
 
state_at (const T &index)
 The current "state" of the generator.
 

Additional Inherited Members

- Protected Member Functions inherited from prrng::pcg32_arrayBase_chunkBase< Generator, Data, Index, false >
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, false >
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 Generator, class Data, class Index>
class prrng::pcg32_arrayBase_chunk< Generator, Data, Index >

Array of generators of which a chunk of random numbers is kept in memory.

Template Parameters
GeneratorStorage of the generator array, e.g. prrng::pcg32_tensor<N>.
DataStorage of the data, e.g. xt::xtensor<double, N + n>.
IndexStorage of the index, e.g. xt::xtensor<ptrdiff_t, N>.

Definition at line 6289 of file prrng.h.

Member Typedef Documentation

◆ size_type

template<class Generator , class Data , class Index >
using prrng::pcg32_arrayBase_chunk< Generator, Data, Index >::size_type = typename Data::size_type

Size type of the data container.

Definition at line 6300 of file prrng.h.

◆ value_type

template<class Generator , class Data , class Index >
using prrng::pcg32_arrayBase_chunk< Generator, Data, Index >::value_type = typename Data::value_type

Value type of the data container.

Definition at line 6301 of file prrng.h.

Member Function Documentation

◆ restore()

template<class Generator , class Data , class Index >
template<class S , class T >
void prrng::pcg32_arrayBase_chunk< Generator, Data, Index >::restore ( const S &  state,
const T &  index 
)
inline

Restore the generator somewhere in the sequence.

Parameters
stateThe state at the beginning of the new chunk.
indexThe index of the first entry of the new chunk.

Definition at line 6312 of file prrng.h.


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