mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Add Random::nextBlob
This commit is contained in:
@@ -98,6 +98,23 @@ double Random::nextDouble() noexcept
|
||||
return static_cast <uint32> (nextInt()) / (double) 0xffffffff;
|
||||
}
|
||||
|
||||
void Random::nextBlob (void* buffer, size_t bytes)
|
||||
{
|
||||
int const remainder = bytes % sizeof (int64);
|
||||
|
||||
{
|
||||
int64* dest = static_cast <int64*> (buffer);
|
||||
for (int i = bytes / sizeof (int64); i > 0; --i)
|
||||
*dest++ = nextInt64 ();
|
||||
buffer = dest;
|
||||
}
|
||||
|
||||
{
|
||||
int64 const val = nextInt64 ();
|
||||
memcpy (buffer, &val, remainder);
|
||||
}
|
||||
}
|
||||
|
||||
BigInteger Random::nextLargeNumber (const BigInteger& maximumValue)
|
||||
{
|
||||
BigInteger n;
|
||||
|
||||
@@ -89,6 +89,10 @@ public:
|
||||
*/
|
||||
bool nextBool() noexcept;
|
||||
|
||||
/** Fills a piece of memory with random data.
|
||||
*/
|
||||
void nextBlob (void* buffer, size_t bytes);
|
||||
|
||||
/** Returns a BigInteger containing a random number.
|
||||
|
||||
@returns a random value in the range 0 to (maximumValue - 1).
|
||||
|
||||
Reference in New Issue
Block a user