|
| | Circle (const unsigned long base) |
| | Construct a new Circle object.
|
| |
| auto | value_at (unsigned long n) const -> std::array< double, 2 > |
| | Evaluate the point on the unit circle at a given index (pure, no state change)
|
| |
| auto | begin () -> GeneratorIterator< Circle, std::array< double, 2 > > |
| | Get iterator to beginning.
|
| |
| auto | end () const -> GeneratorIterator< Circle, 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.
|
| |
Circle sequence generator.
The Circle class is a sequence generator that generates points on a unit circle using the Van der Corput sequence. It uses the VdCorput class to generate the sequence values and maps them to points on the unit circle. The pop() method returns the next point on the unit circle as a std::array<double, 2>, where the first element represents the x-coordinate and the second element represents the y-coordinate of the point. The reseed() method is used to reset the state of the sequence generator to a specific seed value.
* Unit Circle:
* (0,1)
* *
* (-1,0) * * (1,0)
* *
* (0,-1)
*
* Points distributed more evenly
* than random sampling
*