Circle class
#include <ldsgen/lds.hpp>
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 *
Constructors, destructors, conversion operators
Public functions
- auto pop() -> std::array< double, 2 > -> auto
- Generate the next point on the unit circle.
- auto peek() -> std::array< double, 2 > -> auto
- Peek at the next value without advancing state.
- auto skip(unsigned int n) -> void -> auto
- Skip n values in the sequence.
- auto reseed(const unsigned long& seed) -> void -> auto
- Reset the state of the Circle sequence generator.
- auto get_index() const -> unsigned long -> auto
- Get current index.
- auto begin() -> GeneratorIterator< Circle, std::array< double, 2 > > -> auto
- Get iterator to beginning.
- auto end() const -> GeneratorIterator< Circle, std::array< double, 2 > > -> auto
- Get iterator to end (infinite sequence)
Function documentation
ldsgen:: Circle:: Circle(const unsigned long base) explicit
Construct a new Circle object.
| Parameters | |
|---|---|
| base in | the base for the Van der Corput sequence generator |
Constructs a Circle sequence generator with the specified base for generating the Van der Corput sequence, which is then mapped to points on the unit circle.
auto ldsgen:: Circle:: pop() -> std::array< double, 2 >
Generate the next point on the unit circle.
| Returns | std::array<double, 2> the next point on the unit circle |
|---|
Returns the next point on the unit circle as an array of two double values.
auto ldsgen:: Circle:: peek() -> std::array< double, 2 >
Peek at the next value without advancing state.
| Returns | std::array<double, 2> next point on the circle |
|---|
auto ldsgen:: Circle:: skip(unsigned int n) -> void
Skip n values in the sequence.
| Parameters | |
|---|---|
| n in | number of values to skip |
auto ldsgen:: Circle:: get_index() const -> unsigned long
Get current index.
| Returns | unsigned long current index in sequence |
|---|
auto ldsgen:: Circle:: begin() -> GeneratorIterator< Circle, std::array< double, 2 > >
Get iterator to beginning.
| Returns | GeneratorIterator<Circle, std::array<double, 2>> |
|---|
auto ldsgen:: Circle:: end() const -> GeneratorIterator< Circle, std::array< double, 2 > >
Get iterator to end (infinite sequence)
| Returns | GeneratorIterator<Circle, std::array<double, 2>> |
|---|