|
| | Disk (const unsigned long base0, const unsigned long base1) |
| | Construct a new Disk object.
|
| |
| auto | value_at (unsigned long n) const -> std::array< double, 2 > |
| | Evaluate the point in the unit disk at a given index (pure, no state change)
|
| |
| auto | begin () -> GeneratorIterator< Disk, std::array< double, 2 > > |
| | Get iterator to beginning.
|
| |
| auto | end () const -> GeneratorIterator< Disk, std::array< double, 2 > > |
| | Get iterator to end (infinite sequence)
|
| |
| auto | pop () -> Value |
| | Generate the next value in the sequence (advances state).
|
| |
| auto | peek () -> Value |
| | Peek at the next value without advancing state.
|
| |
| auto | skip (unsigned int n) -> void |
| | Skip n values in the sequence.
|
| |
| auto | reseed (const unsigned long &seed) -> void |
| | Reset the generator to a specific seed value.
|
| |
| auto | get_index () const -> unsigned long |
| | Get current index in the sequence.
|
| |
Disk sequence generator.
The Disk class is a sequence generator that generates points in a 2-dimensional space using the Disk sequence. The Disk sequence is a low-discrepancy sequence that is commonly used in quasi-Monte Carlo methods. It is generated by iterating over two different bases and calculating the fractional parts of the numbers in those bases. The Disk class keeps track of the current count and bases, and provides a pop() method that returns the next point in the sequence as a std::array<double, 2>.
* Unit Disk:
* *****
* *** ***
* ** **
* * *
* * * More evenly
* * * distributed
* ** ** than random
* *** ***
* *****
*