29#ifndef _cmnRandomSequence_h
30#define _cmnRandomSequence_h
154 SequencePosition = 0;
162 return SequencePosition;
189 template <
typename _valueType>
192 template <
typename _valueType>
195 template <
typename _valueType>
197 const size_t arraySize);
203 float myPosition =
static_cast<float>(randomNumber) -
static_cast<float>(
LowerRandomBound);
210 return (randomFloat * (max - min)) + min;
213 const size_t arraySize) {
214 for (
size_t i = 0; i < arraySize; ++i, ++array) {
226 return (randomDouble * (max - min)) + min;
229 const size_t arraySize) {
230 for (
size_t i = 0; i < arraySize; ++i, ++array) {
240 return static_cast<int>((randomFloat * (max - min)) + min); }
243 const size_t arraySize) {
244 for (
size_t i = 0; i < arraySize; ++i, ++array) {
251 return static_cast<unsigned int>(randomInt);
255 return static_cast<unsigned int>((randomFloat * (max - min)) + min);
258 const size_t arraySize) {
259 for (
size_t i = 0; i < arraySize; ++i, ++array) {
269 return static_cast<short>((randomFloat * (max - min)) + min);
272 const size_t arraySize) {
273 for (
size_t i = 0; i < arraySize; ++i, ++array) {
280 return static_cast<unsigned short>((0xff) & randomInt);
284 return static_cast<unsigned short>((randomFloat * (max - min)) + min);
287 const size_t arraySize) {
288 for (
size_t i = 0; i < arraySize; ++i, ++array) {
294#if (CISST_DATA_MODEL == CISST_LP64)
304 return static_cast<long>((randomFloat * (max - min)) + min);
307 const size_t arraySize) {
308 for (
size_t i = 0; i < arraySize; ++i, ++array)
313#if (CISST_DATA_MODEL == CISST_LP64)
324 return static_cast<unsigned long >((randomDouble * (max - min)) + min);
327 const size_t arraySize) {
328 for (
size_t i = 0; i < arraySize; ++i, ++array) {
335 long long int result;
336 int * part =
reinterpret_cast<int *
>(&result);
345 return static_cast<long long>((randomFloat * (max - min)) + min);
348 const size_t arraySize) {
349 for (
size_t i = 0; i < arraySize; ++i, ++array) {
356 unsigned long long int result;
357 int * part =
reinterpret_cast<int *
>(&result);
365 return static_cast<unsigned long long >((randomDouble * (max - min)) + min);
368 const size_t arraySize) {
369 for (
size_t i = 0; i < arraySize; ++i, ++array) {
376 return static_cast<char>((0xff) & randomInt);
380 return static_cast<char>((randomFloat * (max - min)) + min);
383 const size_t arraySize) {
384 for (
size_t i = 0; i < arraySize; ++i, ++array) {
391 return static_cast<unsigned char>((0xff) & randomInt);
395 return static_cast<unsigned char>((randomFloat * (max - min)) + min);
398 const size_t arraySize) {
399 for (
size_t i = 0; i < arraySize; ++i, ++array) {
417 return static_cast<size_t>((randomFloat * (max - min)) + min);
420 const size_t arraySize) {
421 for (
size_t i = 0; i < arraySize; ++i, ++array) {
428 return static_cast<ptrdiff_t
>((randomFloat * (max - min)) + min);
431 const size_t arraySize) {
432 for (
size_t i = 0; i < arraySize; ++i, ++array) {
445 SequenceCounterType SequencePosition;
459 const size_t arraySize);
468 const size_t arraySize);
477 const size_t arraySize);
485 const size_t arraySize);
494 const size_t arraySize);
502 const size_t arraySize);
511 const size_t arraySize);
520 const size_t arraySize);
529 const size_t arraySize);
538 const size_t arraySize);
547 const size_t arraySize);
556 const size_t arraySize);
565 const size_t arraySize);
579 const size_t arraySize) {
594 const size_t arraySize) {
609 const size_t arraySize) {
623 const size_t arraySize) {
638 const size_t arraySize) {
652 const size_t arraySize) {
667 const size_t arraySize) {
681 const size_t arraySize) {
697 const size_t arraySize) {
711 const size_t arraySize) {
739 const size_t arraySize) {
759 const size_t arraySize) {
760 for (
size_t i = 0; i < arraySize; ++i, ++array) {
static cmnRandomSequence RandomInstance
Definition cmnRandomSequence.h:132
void ExtractRandomFloatArray(const float min, const float max, float *array, const size_t arraySize)
Definition cmnRandomSequence.h:212
void ExtractRandomSizeTArray(const size_t min, const size_t max, size_t *array, const size_t arraySize)
Definition cmnRandomSequence.h:419
void ExtractRandomUnsignedCharArray(const unsigned char min, const unsigned char max, unsigned char *array, const size_t arraySize)
Definition cmnRandomSequence.h:397
SeedType GetSeed(void) const
Definition cmnRandomSequence.h:145
void ExtractRandomCharArray(const char min, const char max, char *array, const size_t arraySize)
Definition cmnRandomSequence.h:382
void ExtractRandomUnsignedShortArray(const unsigned short min, const unsigned short max, unsigned short *array, const size_t arraySize)
Definition cmnRandomSequence.h:286
unsigned char ExtractRandomUnsignedChar(void)
Definition cmnRandomSequence.h:389
void ExtractRandomUnsignedLongLongArray(const unsigned long long min, const unsigned long long max, unsigned long long *array, const size_t arraySize)
Definition cmnRandomSequence.h:367
void ExtractRandomLongArray(const long min, const long max, long *array, const size_t arraySize)
Definition cmnRandomSequence.h:306
unsigned long ExtractRandomUnsignedLong(void)
Definition cmnRandomSequence.h:312
static const ElementaryRandomNumber LowerRandomBound
Definition cmnRandomSequence.h:87
cmnRandomSequence(const SeedType seed, const SequenceCounterType position=0)
Definition cmnRandomSequence.h:106
void ExtractRandomValue(const _valueType min, const _valueType max, _valueType &result)
void ExtractRandomDoubleArray(const double min, const double max, double *array, const size_t arraySize)
Definition cmnRandomSequence.h:228
static const ElementaryRandomNumber UpperRandomBound
Definition cmnRandomSequence.h:91
int ExtractRandomInt(void)
Definition cmnRandomSequence.h:235
int ElementaryRandomNumber
Definition cmnRandomSequence.h:75
unsigned short ExtractRandomUnsignedShort(const unsigned short min, const unsigned short max)
Definition cmnRandomSequence.h:282
double ExtractRandomDouble(const double min, const double max)
Definition cmnRandomSequence.h:224
void ExtractRandomPermutation(const size_t length, size_t *array)
long long ExtractRandomLongLong(void)
Definition cmnRandomSequence.h:333
long ExtractRandomLong(void)
Definition cmnRandomSequence.h:293
cmnRandomSequence & operator=(const cmnRandomSequence &other)
Definition cmnRandomSequence.h:123
unsigned short ExtractRandomUnsignedShort(void)
Definition cmnRandomSequence.h:278
void SetSeed(const SeedType seed)
Definition cmnRandomSequence.h:152
char ExtractRandomChar(const char min, const char max)
Definition cmnRandomSequence.h:378
unsigned int ExtractRandomUnsignedInt(void)
Definition cmnRandomSequence.h:249
unsigned int SeedType
Definition cmnRandomSequence.h:71
long ExtractRandomLong(const long min, const long max)
Definition cmnRandomSequence.h:302
void ExtractRandomLongLongArray(const long long min, const long long max, long long *array, const size_t arraySize)
Definition cmnRandomSequence.h:347
void ExtractRandomIntArray(const int min, const int max, int *array, const size_t arraySize)
Definition cmnRandomSequence.h:242
float ExtractRandomFloat(void)
Definition cmnRandomSequence.h:201
double ExtractRandomDouble(void)
Definition cmnRandomSequence.h:220
long ExtractRandomLongLong(const long long min, const long long max)
Definition cmnRandomSequence.h:343
unsigned long ExtractRandomUnsignedLong(const unsigned long min, const unsigned long max)
Definition cmnRandomSequence.h:322
unsigned char ExtractRandomUnsignedChar(const unsigned char min, const unsigned char max)
Definition cmnRandomSequence.h:393
void ExtractRandomUnsignedIntArray(const unsigned int min, const unsigned int max, unsigned int *array, const size_t arraySize)
Definition cmnRandomSequence.h:257
unsigned long long ExtractRandomUnsignedLongLong(const unsigned long long min, const unsigned long long max)
Definition cmnRandomSequence.h:363
static cmnRandomSequence & GetInstance(void)
Definition cmnRandomSequence.h:138
void ExtractRandomValue(_valueType &result)
static const SeedType DefaultSeed
Definition cmnRandomSequence.h:83
void SetSequencePosition(const SequenceCounterType position)
Definition cmnRandomSequence.h:169
void ExtractRandomUnsignedLongArray(const unsigned long min, const unsigned long max, unsigned long *array, const size_t arraySize)
Definition cmnRandomSequence.h:326
size_t ExtractRandomSizeT(const size_t min, const size_t max)
Definition cmnRandomSequence.h:415
cmnRandomSequence(const cmnRandomSequence &other)
Definition cmnRandomSequence.h:115
short ExtractRandomShort(void)
Definition cmnRandomSequence.h:264
float ExtractRandomFloat(const float min, const float max)
Definition cmnRandomSequence.h:208
cmnRandomSequence()
Definition cmnRandomSequence.h:98
unsigned long SequenceCounterType
Definition cmnRandomSequence.h:79
char ExtractRandomChar(void)
Definition cmnRandomSequence.h:374
unsigned int ExtractRandomUnsignedInt(const unsigned int min, const unsigned int max)
Definition cmnRandomSequence.h:253
ptrdiff_t ExtractRandomPtrdiffT(const ptrdiff_t min, const ptrdiff_t max)
Definition cmnRandomSequence.h:426
int ExtractRandomInt(const int min, const int max)
Definition cmnRandomSequence.h:238
void ExtractRandomShortArray(const short min, const short max, short *array, const size_t arraySize)
Definition cmnRandomSequence.h:271
unsigned long long ExtractRandomUnsignedLongLong(void)
Definition cmnRandomSequence.h:354
void ExtractRandomPtrdiffTArray(const ptrdiff_t min, const ptrdiff_t max, ptrdiff_t *array, const size_t arraySize)
Definition cmnRandomSequence.h:430
SequenceCounterType GetSequencePosition(void) const
Definition cmnRandomSequence.h:161
ElementaryRandomNumber ExtractRandomElement(void)
Definition cmnRandomSequence.h:180
void ExtractRandomValueArray(const _valueType min, const _valueType max, _valueType *array, const size_t arraySize)
Definition cmnRandomSequence.h:578
short ExtractRandomShort(const short min, const short max)
Definition cmnRandomSequence.h:267
Macros to export the symbols of cisstCommon (in a Dll).
#define CISST_EXPORT
Definition cmnExportMacros.h:50
Portability across compilers and operating systems tools.
#define CISST_DECLARE_TEMPLATE_FUNCTION_SPECIALIZATION
Definition cmnPortability.h:468
#define CISST_DEFINE_TEMPLATE_FUNCTION_SPECIALIZATION
Definition cmnPortability.h:469