|
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 > ¶meters, const alignment &align=alignment()) |
|
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.
|
|
| pcg32_arrayBase_chunkBase (const pcg32_arrayBase_chunkBase &other) |
| Copy constructor.
|
|
void | operator= (const pcg32_arrayBase_chunkBase &other) |
| Copy constructor.
|
|
template<class T > |
pcg32_arrayBase_chunkBase & | operator+= (const T &values) |
| Add values to each chunk.
|
|
template<class T > |
pcg32_arrayBase_chunkBase & | operator-= (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 > |
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 > |
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 > |
R | state_at (const T &index) |
| The current "state" of the generator.
|
|
|
using | size_type = typename Data::size_type |
| Size type of the data container.
|
|
using | size_type = typename Data::size_type |
| Size type of the data container.
|
|
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 > ¶meters, const alignment &align=alignment()) |
| Constructor.
|
|
void | auto_functions () |
| Set draw function.
|
|
void | copy_from (const pcg32_arrayBase_chunkBase &other) |
| Copy constructor.
|
|
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.
|
|
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
-
Data | Storage of the chunk ('data'), e.g. xt::xarray<double> . |
Index | Storage of a 'column' index in the chunk, e.g. xt::xarray<ptrdiff_t> . |
Definition at line 6528 of file prrng.h.