[*] Refactor the rest of AuRNG to use memory view references to harden the ABI and to prevent redundant memory view control block copies as we traverse the stack

This commit is contained in:
Reece Wilson 2024-12-01 09:20:07 +00:00
parent e7f795e07a
commit b0123a242c
6 changed files with 212 additions and 205 deletions

View File

@ -16,7 +16,7 @@ namespace Aurora::RNG
virtual IO::IStreamReader * ToStreamReader() = 0; virtual IO::IStreamReader * ToStreamReader() = 0;
virtual Memory::MemoryViewRead ToSeed() = 0; virtual Memory::MemoryViewRead ToSeed() = 0;
virtual void Read(Memory::MemoryViewWrite view) = 0; virtual void Read(const AuMemoryViewWrite &view) = 0;
virtual AuString NextString(AuUInt32 uLength, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0; virtual AuString NextString(AuUInt32 uLength, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0;
virtual void NextString(const AuMemoryViewWrite &view, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0; virtual void NextString(const AuMemoryViewWrite &view, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters) = 0;
@ -119,50 +119,50 @@ namespace Aurora::RNG
virtual AuList<double> NextArrayDecimals(AuUInt32 uCount) = 0; virtual AuList<double> NextArrayDecimals(AuUInt32 uCount) = 0;
virtual AuList<double> NextArrayDecimalsFast(AuUInt32 uCount) = 0; virtual AuList<double> NextArrayDecimalsFast(AuUInt32 uCount) = 0;
virtual AuList<uuids::uuid> NextArrayUUIDs(AuUInt32 uCount) = 0; virtual AuList<uuids::uuid> NextArrayUUIDs(AuUInt32 uCount) = 0;
virtual AuUInt NextArrayI32RangeInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) = 0; virtual AuUInt NextArrayI32RangeInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax) = 0;
virtual AuUInt NextArrayI32RangeFastInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) = 0; virtual AuUInt NextArrayI32RangeFastInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax) = 0;
virtual AuUInt NextArrayU32RangeInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) = 0; virtual AuUInt NextArrayU32RangeInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax) = 0;
virtual AuUInt NextArrayU32RangeFastInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) = 0; virtual AuUInt NextArrayU32RangeFastInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax) = 0;
virtual AuUInt NextArrayI64RangeInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) = 0; virtual AuUInt NextArrayI64RangeInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax) = 0;
virtual AuUInt NextArrayI64RangeFastInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) = 0; virtual AuUInt NextArrayI64RangeFastInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax) = 0;
virtual AuUInt NextArrayU64RangeInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) = 0; virtual AuUInt NextArrayU64RangeInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax) = 0;
virtual AuUInt NextArrayU64RangeFastInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) = 0; virtual AuUInt NextArrayU64RangeFastInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax) = 0;
virtual AuUInt NextArrayU32MaskInView(Memory::MemoryViewWrite write, AuUInt32 uMask) = 0; virtual AuUInt NextArrayU32MaskInView(const AuMemoryViewWrite &write, AuUInt32 uMask) = 0;
virtual AuUInt NextArrayU64MaskInView(Memory::MemoryViewWrite write, AuUInt64 uMask) = 0; virtual AuUInt NextArrayU64MaskInView(const AuMemoryViewWrite &write, AuUInt64 uMask) = 0;
virtual AuUInt NextArrayDoubleRangeInView(Memory::MemoryViewWrite write, double dMin, double dMax) = 0; virtual AuUInt NextArrayDoubleRangeInView(const AuMemoryViewWrite &write, double dMin, double dMax) = 0;
virtual AuUInt NextArrayDoubleRangeFastInView(Memory::MemoryViewWrite write, double dMin, double dMax) = 0; virtual AuUInt NextArrayDoubleRangeFastInView(const AuMemoryViewWrite &write, double dMin, double dMax) = 0;
virtual AuUInt NextArrayI32InView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayI32InView(const AuMemoryViewWrite &write) = 0;
virtual AuUInt NextArrayU32InView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayU32InView(const AuMemoryViewWrite &write) = 0;
virtual AuUInt NextArrayI64InView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayI64InView(const AuMemoryViewWrite &write) = 0;
virtual AuUInt NextArrayU64InView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayU64InView(const AuMemoryViewWrite &write) = 0;
virtual AuUInt NextArrayVec2InView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) = 0; virtual AuUInt NextArrayVec2InView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB) = 0;
virtual AuUInt NextArrayVec2FastInView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) = 0; virtual AuUInt NextArrayVec2FastInView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB) = 0;
virtual AuUInt NextArrayVec2SortedInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max) = 0; virtual AuUInt NextArrayVec2SortedInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max) = 0;
virtual AuUInt NextArrayVec2SortedFastInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max) = 0; virtual AuUInt NextArrayVec2SortedFastInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max) = 0;
virtual AuUInt NextArrayVec3InView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) = 0; virtual AuUInt NextArrayVec3InView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB) = 0;
virtual AuUInt NextArrayVec3FastInView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) = 0; virtual AuUInt NextArrayVec3FastInView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB) = 0;
virtual AuUInt NextArrayVec3SortedInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max) = 0; virtual AuUInt NextArrayVec3SortedInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max) = 0;
virtual AuUInt NextArrayVec3SortedFastInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max) = 0; virtual AuUInt NextArrayVec3SortedFastInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max) = 0;
virtual AuUInt NextArrayVec4InView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) = 0; virtual AuUInt NextArrayVec4InView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB) = 0;
virtual AuUInt NextArrayVec4FastInView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) = 0; virtual AuUInt NextArrayVec4FastInView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB) = 0;
virtual AuUInt NextArrayVec4SortedInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max) = 0; virtual AuUInt NextArrayVec4SortedInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max) = 0;
virtual AuUInt NextArrayVec4SortedFastInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max) = 0; virtual AuUInt NextArrayVec4SortedFastInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max) = 0;
virtual AuUInt NextArrayVecD2InView(Memory::MemoryViewWrite write, AuVecD2 boundA, AuVecD2 boundB) = 0; virtual AuUInt NextArrayVecD2InView(const AuMemoryViewWrite &write, AuVecD2 boundA, AuVecD2 boundB) = 0;
virtual AuUInt NextArrayVecD2FastInView(Memory::MemoryViewWrite write, AuVecD2 boundA, AuVecD2 boundB) = 0; virtual AuUInt NextArrayVecD2FastInView(const AuMemoryViewWrite &write, AuVecD2 boundA, AuVecD2 boundB) = 0;
virtual AuUInt NextArrayVecD2SortedInView(Memory::MemoryViewWrite write, AuVecD2 min, AuVecD2 max) = 0; virtual AuUInt NextArrayVecD2SortedInView(const AuMemoryViewWrite &write, AuVecD2 min, AuVecD2 max) = 0;
virtual AuUInt NextArrayVecD2SortedFastInView(Memory::MemoryViewWrite write, AuVecD2 min, AuVecD2 max) = 0; virtual AuUInt NextArrayVecD2SortedFastInView(const AuMemoryViewWrite &write, AuVecD2 min, AuVecD2 max) = 0;
virtual AuUInt NextArrayVecD3InView(Memory::MemoryViewWrite write, AuVecD3 boundA, AuVecD3 boundB) = 0; virtual AuUInt NextArrayVecD3InView(const AuMemoryViewWrite &write, AuVecD3 boundA, AuVecD3 boundB) = 0;
virtual AuUInt NextArrayVecD3FastInView(Memory::MemoryViewWrite write, AuVecD3 boundA, AuVecD3 boundB) = 0; virtual AuUInt NextArrayVecD3FastInView(const AuMemoryViewWrite &write, AuVecD3 boundA, AuVecD3 boundB) = 0;
virtual AuUInt NextArrayVecD3SortedInView(Memory::MemoryViewWrite write, AuVecD3 min, AuVecD3 max) = 0; virtual AuUInt NextArrayVecD3SortedInView(const AuMemoryViewWrite &write, AuVecD3 min, AuVecD3 max) = 0;
virtual AuUInt NextArrayVecD3SortedFastInView(Memory::MemoryViewWrite write, AuVecD3 min, AuVecD3 max) = 0; virtual AuUInt NextArrayVecD3SortedFastInView(const AuMemoryViewWrite &write, AuVecD3 min, AuVecD3 max) = 0;
virtual AuUInt NextArrayVecD4InView(Memory::MemoryViewWrite write, AuVecD4 boundA, AuVecD4 boundB) = 0; virtual AuUInt NextArrayVecD4InView(const AuMemoryViewWrite &write, AuVecD4 boundA, AuVecD4 boundB) = 0;
virtual AuUInt NextArrayVecD4FastInView(Memory::MemoryViewWrite write, AuVecD4 boundA, AuVecD4 boundB) = 0; virtual AuUInt NextArrayVecD4FastInView(const AuMemoryViewWrite &write, AuVecD4 boundA, AuVecD4 boundB) = 0;
virtual AuUInt NextArrayVecD4SortedInView(Memory::MemoryViewWrite write, AuVecD4 min, AuVecD4 max) = 0; virtual AuUInt NextArrayVecD4SortedInView(const AuMemoryViewWrite &write, AuVecD4 min, AuVecD4 max) = 0;
virtual AuUInt NextArrayVecD4SortedFastInView(Memory::MemoryViewWrite write, AuVecD4 min, AuVecD4 max) = 0; virtual AuUInt NextArrayVecD4SortedFastInView(const AuMemoryViewWrite &write, AuVecD4 min, AuVecD4 max) = 0;
virtual AuUInt NextArrayDoubleInView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayDoubleInView(const AuMemoryViewWrite &write) = 0;
virtual AuUInt NextArrayDecimalsInView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayDecimalsInView(const AuMemoryViewWrite &write) = 0;
virtual AuUInt NextArrayDecimalsFastInView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayDecimalsFastInView(const AuMemoryViewWrite &write) = 0;
virtual AuUInt NextArrayUUIDsInView(Memory::MemoryViewWrite write) = 0; virtual AuUInt NextArrayUUIDsInView(const AuMemoryViewWrite &write) = 0;
template<typename T, int N> template<typename T, int N>

View File

@ -20,8 +20,8 @@ namespace Aurora::RNG
AUKN_SYM RngGetBytesProvider_f GetSecureRNGBackendOverload(); AUKN_SYM RngGetBytesProvider_f GetSecureRNGBackendOverload();
AUKN_SYM RngGetBytesProvider_f GetSecureRNGBackend(); AUKN_SYM RngGetBytesProvider_f GetSecureRNGBackend();
AUKN_SYM void ReadSecureRNG(Memory::MemoryViewWrite writeView); AUKN_SYM void ReadSecureRNG(const AuMemoryViewWrite &writeView);
AUKN_SYM void ReadFastRNG (Memory::MemoryViewWrite writeView); AUKN_SYM void ReadFastRNG (const AuMemoryViewWrite &writeView);
AUKN_SYM AuString ReadString(AuUInt32 uLength, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters); AUKN_SYM AuString ReadString(AuUInt32 uLength, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters);
AUKN_SYM void RngString(const AuMemoryViewWrite &view, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters); AUKN_SYM void RngString(const AuMemoryViewWrite &view, ERngStringCharacters type = ERngStringCharacters::eAlphaCharacters);
@ -76,38 +76,38 @@ namespace Aurora::RNG
AUKN_SYM AuList<double> RngArrayDecimals(AuUInt32 uCount); AUKN_SYM AuList<double> RngArrayDecimals(AuUInt32 uCount);
AUKN_SYM AuList<double> RngArrayDecimalsFast(AuUInt32 uCount); AUKN_SYM AuList<double> RngArrayDecimalsFast(AuUInt32 uCount);
AUKN_SYM AuList<uuids::uuid> RngArrayUUIDs(AuUInt32 uCount); AUKN_SYM AuList<uuids::uuid> RngArrayUUIDs(AuUInt32 uCount);
AUKN_SYM AuUInt RngArrayI32RangeInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax); AUKN_SYM AuUInt RngArrayI32RangeInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax);
AUKN_SYM AuUInt RngArrayI32RangeFastInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax); AUKN_SYM AuUInt RngArrayI32RangeFastInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax);
AUKN_SYM AuUInt RngArrayU32RangeInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax); AUKN_SYM AuUInt RngArrayU32RangeInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax);
AUKN_SYM AuUInt RngArrayU32RangeFastInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax); AUKN_SYM AuUInt RngArrayU32RangeFastInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax);
AUKN_SYM AuUInt RngArrayI64RangeInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax); AUKN_SYM AuUInt RngArrayI64RangeInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax);
AUKN_SYM AuUInt RngArrayI64RangeFastInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax); AUKN_SYM AuUInt RngArrayI64RangeFastInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax);
AUKN_SYM AuUInt RngArrayU64RangeInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax); AUKN_SYM AuUInt RngArrayU64RangeInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax);
AUKN_SYM AuUInt RngArrayU64RangeFastInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax); AUKN_SYM AuUInt RngArrayU64RangeFastInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax);
AUKN_SYM AuUInt RngArrayU32MaskInView(Memory::MemoryViewWrite write, AuUInt32 uMask); AUKN_SYM AuUInt RngArrayU32MaskInView(const AuMemoryViewWrite &write, AuUInt32 uMask);
AUKN_SYM AuUInt RngArrayU64MaskInView(Memory::MemoryViewWrite write, AuUInt64 uMask); AUKN_SYM AuUInt RngArrayU64MaskInView(const AuMemoryViewWrite &write, AuUInt64 uMask);
AUKN_SYM AuUInt RngArrayDoubleRangeInView(Memory::MemoryViewWrite write, double dMin, double dMax); AUKN_SYM AuUInt RngArrayDoubleRangeInView(const AuMemoryViewWrite &write, double dMin, double dMax);
AUKN_SYM AuUInt RngArrayDoubleRangeFastInView(Memory::MemoryViewWrite write, double dMin, double dMax); AUKN_SYM AuUInt RngArrayDoubleRangeFastInView(const AuMemoryViewWrite &write, double dMin, double dMax);
AUKN_SYM AuUInt RngArrayI32InView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayI32InView(const AuMemoryViewWrite &write);
AUKN_SYM AuUInt RngArrayU32InView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayU32InView(const AuMemoryViewWrite &write);
AUKN_SYM AuUInt RngArrayI64InView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayI64InView(const AuMemoryViewWrite &write);
AUKN_SYM AuUInt RngArrayU64InView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayU64InView(const AuMemoryViewWrite &write);
AUKN_SYM AuUInt RngArrayVec2InView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB); AUKN_SYM AuUInt RngArrayVec2InView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB);
AUKN_SYM AuUInt RngArrayVec2FastInView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB); AUKN_SYM AuUInt RngArrayVec2FastInView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB);
AUKN_SYM AuUInt RngArrayVec2SortedInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max); AUKN_SYM AuUInt RngArrayVec2SortedInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max);
AUKN_SYM AuUInt RngArrayVec2SortedFastInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max); AUKN_SYM AuUInt RngArrayVec2SortedFastInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max);
AUKN_SYM AuUInt RngArrayVec3InView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB); AUKN_SYM AuUInt RngArrayVec3InView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB);
AUKN_SYM AuUInt RngArrayVec3FastInView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB); AUKN_SYM AuUInt RngArrayVec3FastInView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB);
AUKN_SYM AuUInt RngArrayVec3SortedInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max); AUKN_SYM AuUInt RngArrayVec3SortedInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max);
AUKN_SYM AuUInt RngArrayVec3SortedFastInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max); AUKN_SYM AuUInt RngArrayVec3SortedFastInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max);
AUKN_SYM AuUInt RngArrayVec4InView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB); AUKN_SYM AuUInt RngArrayVec4InView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB);
AUKN_SYM AuUInt RngArrayVec4FastInView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB); AUKN_SYM AuUInt RngArrayVec4FastInView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB);
AUKN_SYM AuUInt RngArrayVec4SortedInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max); AUKN_SYM AuUInt RngArrayVec4SortedInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max);
AUKN_SYM AuUInt RngArrayVec4SortedFastInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max); AUKN_SYM AuUInt RngArrayVec4SortedFastInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max);
AUKN_SYM AuUInt RngArrayDoubleInView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayDoubleInView(const AuMemoryViewWrite &write);
AUKN_SYM AuUInt RngArrayDecimalsInView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayDecimalsInView(const AuMemoryViewWrite &write);
AUKN_SYM AuUInt RngArrayDecimalsFastInView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayDecimalsFastInView(const AuMemoryViewWrite &write);
AUKN_SYM AuUInt RngArrayUUIDsInView(Memory::MemoryViewWrite write); AUKN_SYM AuUInt RngArrayUUIDsInView(const AuMemoryViewWrite &write);
// Note: it is conceivable that someone may want the following templates for some cryptographic purpose // Note: it is conceivable that someone may want the following templates for some cryptographic purpose
template<bool fast = true, typename T, int N> template<bool fast = true, typename T, int N>

View File

@ -15,7 +15,7 @@ namespace Aurora::RNG
static WELLRand gWellRand; static WELLRand gWellRand;
RandomUnique_t gFastDevice; RandomUnique_t gFastDevice;
AUKN_SYM void ReadSecureRNG(Memory::MemoryViewWrite writeView) AUKN_SYM void ReadSecureRNG(const AuMemoryViewWrite &writeView)
{ {
AuUInt32 offset; AuUInt32 offset;
AuUInt8 *headPtr; AuUInt8 *headPtr;
@ -23,7 +23,10 @@ namespace Aurora::RNG
auto pBuffer = writeView.ptr; auto pBuffer = writeView.ptr;
auto uBytes = writeView.length; auto uBytes = writeView.length;
SysAssert(pBuffer, "Null RNG out buffer"); if (!pBuffer)
{
return;
}
headPtr = reinterpret_cast<AuUInt8 *>(pBuffer); headPtr = reinterpret_cast<AuUInt8 *>(pBuffer);
offset = 0; offset = 0;
@ -37,12 +40,16 @@ namespace Aurora::RNG
} }
} }
AUKN_SYM void ReadFastRNG(Memory::MemoryViewWrite writeView) AUKN_SYM void ReadFastRNG(const AuMemoryViewWrite &writeView)
{ {
auto pBuffer = writeView.ptr; auto pBuffer = writeView.ptr;
auto uBytes = writeView.length; auto uBytes = writeView.length;
SysAssert(pBuffer, "Null fast rng out buffer"); if (!pBuffer)
{
return;
}
WELL_NextBytes(&gWellRand, pBuffer, uBytes); WELL_NextBytes(&gWellRand, pBuffer, uBytes);
} }

View File

@ -273,162 +273,162 @@ namespace Aurora::RNG
return gFastDevice->NextArrayU64RangeFast(uCount, uMin, uMax); return gFastDevice->NextArrayU64RangeFast(uCount, uMin, uMax);
} }
AUKN_SYM AuUInt RngArrayI32RangeInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) AUKN_SYM AuUInt RngArrayI32RangeInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax)
{ {
return gFastDevice->NextArrayI32RangeInView(write, iMin, iMax); return gFastDevice->NextArrayI32RangeInView(write, iMin, iMax);
} }
AUKN_SYM AuUInt RngArrayI32RangeFastInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) AUKN_SYM AuUInt RngArrayI32RangeFastInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax)
{ {
return gFastDevice->NextArrayI32RangeFastInView(write, iMin, iMax); return gFastDevice->NextArrayI32RangeFastInView(write, iMin, iMax);
} }
AUKN_SYM AuUInt RngArrayU32RangeInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) AUKN_SYM AuUInt RngArrayU32RangeInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax)
{ {
return gFastDevice->NextArrayU32RangeInView(write, uMin, uMax); return gFastDevice->NextArrayU32RangeInView(write, uMin, uMax);
} }
AUKN_SYM AuUInt RngArrayU32RangeFastInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) AUKN_SYM AuUInt RngArrayU32RangeFastInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax)
{ {
return gFastDevice->NextArrayU32RangeFastInView(write, uMin, uMax); return gFastDevice->NextArrayU32RangeFastInView(write, uMin, uMax);
} }
AUKN_SYM AuUInt RngArrayI64RangeInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) AUKN_SYM AuUInt RngArrayI64RangeInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax)
{ {
return gFastDevice->NextArrayI64RangeInView(write, iMin, iMax); return gFastDevice->NextArrayI64RangeInView(write, iMin, iMax);
} }
AUKN_SYM AuUInt RngArrayI64RangeFastInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) AUKN_SYM AuUInt RngArrayI64RangeFastInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax)
{ {
return gFastDevice->NextArrayI64RangeFastInView(write, iMin, iMax); return gFastDevice->NextArrayI64RangeFastInView(write, iMin, iMax);
} }
AUKN_SYM AuUInt RngArrayU64RangeInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) AUKN_SYM AuUInt RngArrayU64RangeInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax)
{ {
return gFastDevice->NextArrayU64RangeInView(write, uMin, uMax); return gFastDevice->NextArrayU64RangeInView(write, uMin, uMax);
} }
AUKN_SYM AuUInt RngArrayU64RangeFastInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) AUKN_SYM AuUInt RngArrayU64RangeFastInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax)
{ {
return gFastDevice->NextArrayU64RangeFastInView(write, uMin, uMax); return gFastDevice->NextArrayU64RangeFastInView(write, uMin, uMax);
} }
AUKN_SYM AuUInt RngArrayU32MaskInView(Memory::MemoryViewWrite write, AuUInt32 uMask) AUKN_SYM AuUInt RngArrayU32MaskInView(const AuMemoryViewWrite &write, AuUInt32 uMask)
{ {
return gFastDevice->NextArrayU32MaskInView(write, uMask); return gFastDevice->NextArrayU32MaskInView(write, uMask);
} }
AUKN_SYM AuUInt RngArrayU64MaskInView(Memory::MemoryViewWrite write, AuUInt64 uMask) AUKN_SYM AuUInt RngArrayU64MaskInView(const AuMemoryViewWrite &write, AuUInt64 uMask)
{ {
return gFastDevice->NextArrayU64MaskInView(write, uMask); return gFastDevice->NextArrayU64MaskInView(write, uMask);
} }
AUKN_SYM AuUInt RngArrayDoubleRangeInView(Memory::MemoryViewWrite write, double dMin, double dMax) AUKN_SYM AuUInt RngArrayDoubleRangeInView(const AuMemoryViewWrite &write, double dMin, double dMax)
{ {
return gFastDevice->NextArrayDoubleRangeInView(write, dMin, dMax); return gFastDevice->NextArrayDoubleRangeInView(write, dMin, dMax);
} }
AUKN_SYM AuUInt RngArrayDoubleRangeFastInView(Memory::MemoryViewWrite write, double dMin, double dMax) AUKN_SYM AuUInt RngArrayDoubleRangeFastInView(const AuMemoryViewWrite &write, double dMin, double dMax)
{ {
return gFastDevice->NextArrayDoubleRangeFastInView(write, dMin, dMax); return gFastDevice->NextArrayDoubleRangeFastInView(write, dMin, dMax);
} }
AUKN_SYM AuUInt RngArrayI32InView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayI32InView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayI32InView(write); return gFastDevice->NextArrayI32InView(write);
} }
AUKN_SYM AuUInt RngArrayU32InView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayU32InView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayU32InView(write); return gFastDevice->NextArrayU32InView(write);
} }
AUKN_SYM AuUInt RngArrayI64InView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayI64InView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayI64InView(write); return gFastDevice->NextArrayI64InView(write);
} }
AUKN_SYM AuUInt RngArrayU64InView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayU64InView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayU64InView(write); return gFastDevice->NextArrayU64InView(write);
} }
AUKN_SYM AuUInt RngArrayVec2InView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) AUKN_SYM AuUInt RngArrayVec2InView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB)
{ {
return gFastDevice->NextArrayVec2InView(write, boundA, boundB); return gFastDevice->NextArrayVec2InView(write, boundA, boundB);
} }
AUKN_SYM AuUInt RngArrayVec2FastInView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) AUKN_SYM AuUInt RngArrayVec2FastInView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB)
{ {
return gFastDevice->NextArrayVec2FastInView(write, boundA, boundB); return gFastDevice->NextArrayVec2FastInView(write, boundA, boundB);
} }
AUKN_SYM AuUInt RngArrayVec2SortedInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max) AUKN_SYM AuUInt RngArrayVec2SortedInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max)
{ {
return gFastDevice->NextArrayVec2SortedInView(write, min, max); return gFastDevice->NextArrayVec2SortedInView(write, min, max);
} }
AUKN_SYM AuUInt RngArrayVec2SortedFastInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max) AUKN_SYM AuUInt RngArrayVec2SortedFastInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max)
{ {
return gFastDevice->NextArrayVec2SortedFastInView(write, min, max); return gFastDevice->NextArrayVec2SortedFastInView(write, min, max);
} }
AUKN_SYM AuUInt RngArrayVec3InView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) AUKN_SYM AuUInt RngArrayVec3InView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB)
{ {
return gFastDevice->NextArrayVec3InView(write, boundA, boundB); return gFastDevice->NextArrayVec3InView(write, boundA, boundB);
} }
AUKN_SYM AuUInt RngArrayVec3FastInView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) AUKN_SYM AuUInt RngArrayVec3FastInView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB)
{ {
return gFastDevice->NextArrayVec3FastInView(write, boundA, boundB); return gFastDevice->NextArrayVec3FastInView(write, boundA, boundB);
} }
AUKN_SYM AuUInt RngArrayVec3SortedInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max) AUKN_SYM AuUInt RngArrayVec3SortedInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max)
{ {
return gFastDevice->NextArrayVec3SortedInView(write, min, max); return gFastDevice->NextArrayVec3SortedInView(write, min, max);
} }
AUKN_SYM AuUInt RngArrayVec3SortedFastInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max) AUKN_SYM AuUInt RngArrayVec3SortedFastInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max)
{ {
return gFastDevice->NextArrayVec3SortedFastInView(write, min, max); return gFastDevice->NextArrayVec3SortedFastInView(write, min, max);
} }
AUKN_SYM AuUInt RngArrayVec4InView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) AUKN_SYM AuUInt RngArrayVec4InView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB)
{ {
return gFastDevice->NextArrayVec4InView(write, boundA, boundB); return gFastDevice->NextArrayVec4InView(write, boundA, boundB);
} }
AUKN_SYM AuUInt RngArrayVec4FastInView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) AUKN_SYM AuUInt RngArrayVec4FastInView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB)
{ {
return gFastDevice->NextArrayVec4FastInView(write, boundA, boundB); return gFastDevice->NextArrayVec4FastInView(write, boundA, boundB);
} }
AUKN_SYM AuUInt RngArrayVec4SortedInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max) AUKN_SYM AuUInt RngArrayVec4SortedInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max)
{ {
return gFastDevice->NextArrayVec4SortedInView(write, min, max); return gFastDevice->NextArrayVec4SortedInView(write, min, max);
} }
AUKN_SYM AuUInt RngArrayVec4SortedFastInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max) AUKN_SYM AuUInt RngArrayVec4SortedFastInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max)
{ {
return gFastDevice->NextArrayVec4SortedFastInView(write, min, max); return gFastDevice->NextArrayVec4SortedFastInView(write, min, max);
} }
AUKN_SYM AuUInt RngArrayDoubleInView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayDoubleInView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayDoubleInView(write); return gFastDevice->NextArrayDoubleInView(write);
} }
AUKN_SYM AuUInt RngArrayDecimalsInView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayDecimalsInView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayDecimalsInView(write); return gFastDevice->NextArrayDecimalsInView(write);
} }
AUKN_SYM AuUInt RngArrayDecimalsFastInView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayDecimalsFastInView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayDecimalsFastInView(write); return gFastDevice->NextArrayDecimalsFastInView(write);
} }
AUKN_SYM AuUInt RngArrayUUIDsInView(Memory::MemoryViewWrite write) AUKN_SYM AuUInt RngArrayUUIDsInView(const AuMemoryViewWrite &write)
{ {
return gFastDevice->NextArrayUUIDsInView(write); return gFastDevice->NextArrayUUIDsInView(write);
} }

View File

@ -71,7 +71,7 @@ namespace Aurora::RNG
// secure rng requires no init -> we just passthrough to the global ReadSecureRNG function // secure rng requires no init -> we just passthrough to the global ReadSecureRNG function
} }
void RandomDevice::Read(Memory::MemoryViewWrite view) void RandomDevice::Read(const AuMemoryViewWrite &view)
{ {
if (!view) if (!view)
{ {
@ -579,7 +579,7 @@ namespace Aurora::RNG
return uuids::uuid { bytes, bytes + 16 }; return uuids::uuid { bytes, bytes + 16 };
} }
AuUInt RandomDevice::NextArrayI32RangeInView(AuMemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) AuUInt RandomDevice::NextArrayI32RangeInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax)
{ {
auto ret = write.Begin<AuInt32>(); auto ret = write.Begin<AuInt32>();
auto uCount = write.ToCount<AuInt32>(); auto uCount = write.ToCount<AuInt32>();
@ -605,7 +605,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayI32RangeFastInView(AuMemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) AuUInt RandomDevice::NextArrayI32RangeFastInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax)
{ {
auto ret = write.Begin<AuInt32>(); auto ret = write.Begin<AuInt32>();
auto uCount = write.ToCount<AuInt32>(); auto uCount = write.ToCount<AuInt32>();
@ -630,7 +630,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU32RangeInView(AuMemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) AuUInt RandomDevice::NextArrayU32RangeInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax)
{ {
auto ret = write.Begin<AuUInt32>(); auto ret = write.Begin<AuUInt32>();
auto uCount = write.ToCount<AuUInt32>(); auto uCount = write.ToCount<AuUInt32>();
@ -656,7 +656,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU32RangeFastInView(AuMemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) AuUInt RandomDevice::NextArrayU32RangeFastInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax)
{ {
auto ret = write.Begin<AuUInt32>(); auto ret = write.Begin<AuUInt32>();
auto uCount = write.ToCount<AuUInt32>(); auto uCount = write.ToCount<AuUInt32>();
@ -681,7 +681,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayDoubleRangeInView(AuMemoryViewWrite write, double dMin, double dMax) AuUInt RandomDevice::NextArrayDoubleRangeInView(const AuMemoryViewWrite &write, double dMin, double dMax)
{ {
#if defined(AURNG_USE_FAST_DECIMALS) #if defined(AURNG_USE_FAST_DECIMALS)
@ -732,7 +732,7 @@ namespace Aurora::RNG
#endif #endif
} }
AuUInt RandomDevice::NextArrayDoubleRangeFastInView(AuMemoryViewWrite write, double dMin, double dMax) AuUInt RandomDevice::NextArrayDoubleRangeFastInView(const AuMemoryViewWrite &write, double dMin, double dMax)
{ {
auto ret = write.Begin<double>(); auto ret = write.Begin<double>();
auto uCount = write.ToCount<double>(); auto uCount = write.ToCount<double>();
@ -752,7 +752,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayI32InView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayI32InView(const AuMemoryViewWrite &write)
{ {
auto ret = write.Begin<AuInt32>(); auto ret = write.Begin<AuInt32>();
auto uCount = write.ToCount<AuInt32>(); auto uCount = write.ToCount<AuInt32>();
@ -760,7 +760,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU32InView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayU32InView(const AuMemoryViewWrite &write)
{ {
auto ret = write.Begin<AuUInt32>(); auto ret = write.Begin<AuUInt32>();
auto uCount = write.ToCount<AuUInt32>(); auto uCount = write.ToCount<AuUInt32>();
@ -768,7 +768,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayI64RangeFastInView(AuMemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) AuUInt RandomDevice::NextArrayI64RangeFastInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax)
{ {
auto ret = write.Begin<AuInt64>(); auto ret = write.Begin<AuInt64>();
auto uCount = write.ToCount<AuInt64>(); auto uCount = write.ToCount<AuInt64>();
@ -793,7 +793,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU64RangeFastInView(AuMemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) AuUInt RandomDevice::NextArrayU64RangeFastInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax)
{ {
auto ret = write.Begin<AuUInt64>(); auto ret = write.Begin<AuUInt64>();
auto uCount = write.ToCount<AuUInt64>(); auto uCount = write.ToCount<AuUInt64>();
@ -818,7 +818,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayI64RangeInView(AuMemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) AuUInt RandomDevice::NextArrayI64RangeInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax)
{ {
auto ret = write.Begin<AuInt64>(); auto ret = write.Begin<AuInt64>();
auto uCount = write.ToCount<AuInt64>(); auto uCount = write.ToCount<AuInt64>();
@ -844,7 +844,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU64RangeInView(AuMemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) AuUInt RandomDevice::NextArrayU64RangeInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax)
{ {
auto ret = write.Begin<AuUInt64>(); auto ret = write.Begin<AuUInt64>();
auto uCount = write.ToCount<AuUInt64>(); auto uCount = write.ToCount<AuUInt64>();
@ -870,7 +870,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU32MaskInView(AuMemoryViewWrite write, AuUInt32 uMask) AuUInt RandomDevice::NextArrayU32MaskInView(const AuMemoryViewWrite &write, AuUInt32 uMask)
{ {
auto ret = write.Begin<AuUInt32>(); auto ret = write.Begin<AuUInt32>();
auto uCount = write.ToCount<AuUInt32>(); auto uCount = write.ToCount<AuUInt32>();
@ -886,7 +886,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU64MaskInView(AuMemoryViewWrite write, AuUInt64 uMask) AuUInt RandomDevice::NextArrayU64MaskInView(const AuMemoryViewWrite &write, AuUInt64 uMask)
{ {
auto ret = write.Begin<AuUInt64>(); auto ret = write.Begin<AuUInt64>();
auto uCount = write.ToCount<AuUInt64>(); auto uCount = write.ToCount<AuUInt64>();
@ -902,21 +902,21 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayI64InView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayI64InView(const AuMemoryViewWrite &write)
{ {
auto uCount = write.ToCount<AuInt64>(); auto uCount = write.ToCount<AuInt64>();
this->Read(write); this->Read(write);
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayU64InView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayU64InView(const AuMemoryViewWrite &write)
{ {
auto uCount = write.ToCount<AuUInt64>(); auto uCount = write.ToCount<AuUInt64>();
this->Read(write); this->Read(write);
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVec2InView(AuMemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) AuUInt RandomDevice::NextArrayVec2InView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB)
{ {
AuVec2 mins, maxs; AuVec2 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -926,7 +926,7 @@ namespace Aurora::RNG
return NextArrayVec2SortedInView(write, mins, maxs); return NextArrayVec2SortedInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVec2FastInView(AuMemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) AuUInt RandomDevice::NextArrayVec2FastInView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB)
{ {
AuVec2 mins, maxs; AuVec2 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -936,7 +936,7 @@ namespace Aurora::RNG
return NextArrayVec2SortedFastInView(write, mins, maxs); return NextArrayVec2SortedFastInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVec2SortedInView(AuMemoryViewWrite write, AuVec2 min, AuVec2 max) AuUInt RandomDevice::NextArrayVec2SortedInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max)
{ {
AuVec2 range; AuVec2 range;
RNG_BYTES_PROLOGUE; RNG_BYTES_PROLOGUE;
@ -965,7 +965,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVec2SortedFastInView(AuMemoryViewWrite write, AuVec2 min, AuVec2 max) AuUInt RandomDevice::NextArrayVec2SortedFastInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max)
{ {
AuVec2 range; AuVec2 range;
@ -991,7 +991,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVec3InView(AuMemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) AuUInt RandomDevice::NextArrayVec3InView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB)
{ {
AuVec3 mins, maxs; AuVec3 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1003,7 +1003,7 @@ namespace Aurora::RNG
return NextArrayVec3SortedInView(write, mins, maxs); return NextArrayVec3SortedInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVec3FastInView(AuMemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) AuUInt RandomDevice::NextArrayVec3FastInView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB)
{ {
AuVec3 mins, maxs; AuVec3 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1015,7 +1015,7 @@ namespace Aurora::RNG
return NextArrayVec3SortedFastInView(write, mins, maxs); return NextArrayVec3SortedFastInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVec3SortedInView(AuMemoryViewWrite write, AuVec3 min, AuVec3 max) AuUInt RandomDevice::NextArrayVec3SortedInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max)
{ {
AuVec3 range; AuVec3 range;
RNG_BYTES_PROLOGUE; RNG_BYTES_PROLOGUE;
@ -1047,7 +1047,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVec3SortedFastInView(AuMemoryViewWrite write, AuVec3 min, AuVec3 max) AuUInt RandomDevice::NextArrayVec3SortedFastInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max)
{ {
AuVec3 range; AuVec3 range;
auto ret = write.Begin<AuVec3>(); auto ret = write.Begin<AuVec3>();
@ -1075,7 +1075,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVec4InView(AuMemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) AuUInt RandomDevice::NextArrayVec4InView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB)
{ {
AuVec4 mins, maxs; AuVec4 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1089,7 +1089,7 @@ namespace Aurora::RNG
return NextArrayVec4SortedInView(write, mins, maxs); return NextArrayVec4SortedInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVec4FastInView(AuMemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) AuUInt RandomDevice::NextArrayVec4FastInView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB)
{ {
AuVec4 mins, maxs; AuVec4 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1103,7 +1103,7 @@ namespace Aurora::RNG
return NextArrayVec4SortedFastInView(write, mins, maxs); return NextArrayVec4SortedFastInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVec4SortedInView(AuMemoryViewWrite write, AuVec4 min, AuVec4 max) AuUInt RandomDevice::NextArrayVec4SortedInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max)
{ {
AuVec4 range; AuVec4 range;
RNG_BYTES_PROLOGUE; RNG_BYTES_PROLOGUE;
@ -1138,7 +1138,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVec4SortedFastInView(AuMemoryViewWrite write, AuVec4 min, AuVec4 max) AuUInt RandomDevice::NextArrayVec4SortedFastInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max)
{ {
AuVec4 range; AuVec4 range;
auto ret = write.Begin<AuVec4>(); auto ret = write.Begin<AuVec4>();
@ -1169,7 +1169,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVecD2InView(AuMemoryViewWrite write, AuVecD2 boundA, AuVecD2 boundB) AuUInt RandomDevice::NextArrayVecD2InView(const AuMemoryViewWrite &write, AuVecD2 boundA, AuVecD2 boundB)
{ {
AuVecD2 mins, maxs; AuVecD2 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1179,7 +1179,7 @@ namespace Aurora::RNG
return NextArrayVecD2SortedInView(write, mins, maxs); return NextArrayVecD2SortedInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVecD2FastInView(AuMemoryViewWrite write, AuVecD2 boundA, AuVecD2 boundB) AuUInt RandomDevice::NextArrayVecD2FastInView(const AuMemoryViewWrite &write, AuVecD2 boundA, AuVecD2 boundB)
{ {
AuVecD2 mins, maxs; AuVecD2 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1189,7 +1189,7 @@ namespace Aurora::RNG
return NextArrayVecD2SortedFastInView(write, mins, maxs); return NextArrayVecD2SortedFastInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVecD2SortedInView(AuMemoryViewWrite write, AuVecD2 min, AuVecD2 max) AuUInt RandomDevice::NextArrayVecD2SortedInView(const AuMemoryViewWrite &write, AuVecD2 min, AuVecD2 max)
{ {
AuVecD2 range; AuVecD2 range;
RNG_BYTES_PROLOGUE; RNG_BYTES_PROLOGUE;
@ -1218,7 +1218,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVecD2SortedFastInView(AuMemoryViewWrite write, AuVecD2 min, AuVecD2 max) AuUInt RandomDevice::NextArrayVecD2SortedFastInView(const AuMemoryViewWrite &write, AuVecD2 min, AuVecD2 max)
{ {
AuVecD2 range; AuVecD2 range;
@ -1244,7 +1244,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVecD3InView(AuMemoryViewWrite write, AuVecD3 boundA, AuVecD3 boundB) AuUInt RandomDevice::NextArrayVecD3InView(const AuMemoryViewWrite &write, AuVecD3 boundA, AuVecD3 boundB)
{ {
AuVecD3 mins, maxs; AuVecD3 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1256,7 +1256,7 @@ namespace Aurora::RNG
return NextArrayVecD3SortedInView(write, mins, maxs); return NextArrayVecD3SortedInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVecD3FastInView(AuMemoryViewWrite write, AuVecD3 boundA, AuVecD3 boundB) AuUInt RandomDevice::NextArrayVecD3FastInView(const AuMemoryViewWrite &write, AuVecD3 boundA, AuVecD3 boundB)
{ {
AuVecD3 mins, maxs; AuVecD3 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1268,7 +1268,7 @@ namespace Aurora::RNG
return NextArrayVecD3SortedFastInView(write, mins, maxs); return NextArrayVecD3SortedFastInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVecD3SortedInView(AuMemoryViewWrite write, AuVecD3 min, AuVecD3 max) AuUInt RandomDevice::NextArrayVecD3SortedInView(const AuMemoryViewWrite &write, AuVecD3 min, AuVecD3 max)
{ {
AuVecD3 range; AuVecD3 range;
RNG_BYTES_PROLOGUE; RNG_BYTES_PROLOGUE;
@ -1300,7 +1300,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVecD3SortedFastInView(AuMemoryViewWrite write, AuVecD3 min, AuVecD3 max) AuUInt RandomDevice::NextArrayVecD3SortedFastInView(const AuMemoryViewWrite &write, AuVecD3 min, AuVecD3 max)
{ {
AuVecD3 range; AuVecD3 range;
auto ret = write.Begin<AuVecD3>(); auto ret = write.Begin<AuVecD3>();
@ -1328,7 +1328,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVecD4InView(AuMemoryViewWrite write, AuVecD4 boundA, AuVecD4 boundB) AuUInt RandomDevice::NextArrayVecD4InView(const AuMemoryViewWrite &write, AuVecD4 boundA, AuVecD4 boundB)
{ {
AuVecD4 mins, maxs; AuVecD4 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1342,7 +1342,7 @@ namespace Aurora::RNG
return NextArrayVecD4SortedInView(write, mins, maxs); return NextArrayVecD4SortedInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVecD4FastInView(AuMemoryViewWrite write, AuVecD4 boundA, AuVecD4 boundB) AuUInt RandomDevice::NextArrayVecD4FastInView(const AuMemoryViewWrite &write, AuVecD4 boundA, AuVecD4 boundB)
{ {
AuVecD4 mins, maxs; AuVecD4 mins, maxs;
mins[0] = AuMin(boundA[0], boundB[0]); mins[0] = AuMin(boundA[0], boundB[0]);
@ -1356,7 +1356,7 @@ namespace Aurora::RNG
return NextArrayVecD4SortedFastInView(write, mins, maxs); return NextArrayVecD4SortedFastInView(write, mins, maxs);
} }
AuUInt RandomDevice::NextArrayVecD4SortedInView(AuMemoryViewWrite write, AuVecD4 min, AuVecD4 max) AuUInt RandomDevice::NextArrayVecD4SortedInView(const AuMemoryViewWrite &write, AuVecD4 min, AuVecD4 max)
{ {
AuVecD4 range; AuVecD4 range;
RNG_BYTES_PROLOGUE; RNG_BYTES_PROLOGUE;
@ -1391,7 +1391,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayVecD4SortedFastInView(AuMemoryViewWrite write, AuVecD4 min, AuVecD4 max) AuUInt RandomDevice::NextArrayVecD4SortedFastInView(const AuMemoryViewWrite &write, AuVecD4 min, AuVecD4 max)
{ {
AuVecD4 range; AuVecD4 range;
auto ret = write.Begin<AuVecD4>(); auto ret = write.Begin<AuVecD4>();
@ -1422,7 +1422,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayDoubleInView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayDoubleInView(const AuMemoryViewWrite &write)
{ {
auto ret = write.Begin<double>(); auto ret = write.Begin<double>();
auto uCount = write.ToCount<double>(); auto uCount = write.ToCount<double>();
@ -1430,7 +1430,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayDecimalsInView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayDecimalsInView(const AuMemoryViewWrite &write)
{ {
#if defined(AURNG_USE_FAST_DECIMALS) #if defined(AURNG_USE_FAST_DECIMALS)
auto ret = write.Begin<double>(); auto ret = write.Begin<double>();
@ -1472,7 +1472,7 @@ namespace Aurora::RNG
#endif #endif
} }
AuUInt RandomDevice::NextArrayDecimalsFastInView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayDecimalsFastInView(const AuMemoryViewWrite &write)
{ {
auto ret = write.Begin<double>(); auto ret = write.Begin<double>();
auto uCount = write.ToCount<double>(); auto uCount = write.ToCount<double>();
@ -1487,7 +1487,7 @@ namespace Aurora::RNG
return uCount; return uCount;
} }
AuUInt RandomDevice::NextArrayUUIDsInView(AuMemoryViewWrite write) AuUInt RandomDevice::NextArrayUUIDsInView(const AuMemoryViewWrite &write)
{ {
auto ret = write.Begin<uuids::uuid>(); auto ret = write.Begin<uuids::uuid>();
auto uCount = write.ToCount<uuids::uuid>(); auto uCount = write.ToCount<uuids::uuid>();

View File

@ -19,7 +19,7 @@ namespace Aurora::RNG
RandomDevice(); RandomDevice();
RandomDevice(const RandomDef & def); RandomDevice(const RandomDef & def);
void Read(Memory::MemoryViewWrite view) override; void Read(const AuMemoryViewWrite &view) override;
AuString NextString(AuUInt32 uLength, ERngStringCharacters type) override; AuString NextString(AuUInt32 uLength, ERngStringCharacters type) override;
void NextString(const AuMemoryViewWrite &view, ERngStringCharacters type) override; void NextString(const AuMemoryViewWrite &view, ERngStringCharacters type) override;
@ -87,50 +87,50 @@ namespace Aurora::RNG
AuList<AuUInt32> NextArrayU32RangeFast(AuUInt32 uCount, AuUInt32 uMin, AuUInt32 uMax) override; AuList<AuUInt32> NextArrayU32RangeFast(AuUInt32 uCount, AuUInt32 uMin, AuUInt32 uMax) override;
AuList<AuInt64> NextArrayI64RangeFast(AuUInt32 uCount, AuInt64 iMin, AuInt64 iMax) override; AuList<AuInt64> NextArrayI64RangeFast(AuUInt32 uCount, AuInt64 iMin, AuInt64 iMax) override;
AuList<AuUInt64> NextArrayU64RangeFast(AuUInt32 uCount, AuUInt64 uMin, AuUInt64 uMax) override; AuList<AuUInt64> NextArrayU64RangeFast(AuUInt32 uCount, AuUInt64 uMin, AuUInt64 uMax) override;
AuUInt NextArrayI32RangeInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) override; AuUInt NextArrayI32RangeInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax) override;
AuUInt NextArrayI32RangeFastInView(Memory::MemoryViewWrite write, AuInt32 iMin, AuInt32 iMax) override; AuUInt NextArrayI32RangeFastInView(const AuMemoryViewWrite &write, AuInt32 iMin, AuInt32 iMax) override;
AuUInt NextArrayU32RangeInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) override; AuUInt NextArrayU32RangeInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax) override;
AuUInt NextArrayU32RangeFastInView(Memory::MemoryViewWrite write, AuUInt32 uMin, AuUInt32 uMax) override; AuUInt NextArrayU32RangeFastInView(const AuMemoryViewWrite &write, AuUInt32 uMin, AuUInt32 uMax) override;
AuUInt NextArrayI64RangeInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) override; AuUInt NextArrayI64RangeInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax) override;
AuUInt NextArrayI64RangeFastInView(Memory::MemoryViewWrite write, AuInt64 iMin, AuInt64 iMax) override; AuUInt NextArrayI64RangeFastInView(const AuMemoryViewWrite &write, AuInt64 iMin, AuInt64 iMax) override;
AuUInt NextArrayU64RangeInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) override; AuUInt NextArrayU64RangeInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax) override;
AuUInt NextArrayU64RangeFastInView(Memory::MemoryViewWrite write, AuUInt64 uMin, AuUInt64 uMax) override; AuUInt NextArrayU64RangeFastInView(const AuMemoryViewWrite &write, AuUInt64 uMin, AuUInt64 uMax) override;
AuUInt NextArrayU32MaskInView(Memory::MemoryViewWrite write, AuUInt32 uMask) override; AuUInt NextArrayU32MaskInView(const AuMemoryViewWrite &write, AuUInt32 uMask) override;
AuUInt NextArrayU64MaskInView(Memory::MemoryViewWrite write, AuUInt64 uMask) override; AuUInt NextArrayU64MaskInView(const AuMemoryViewWrite &write, AuUInt64 uMask) override;
AuUInt NextArrayDoubleRangeInView(Memory::MemoryViewWrite write, double dMin, double dMax) override; AuUInt NextArrayDoubleRangeInView(const AuMemoryViewWrite &write, double dMin, double dMax) override;
AuUInt NextArrayDoubleRangeFastInView(Memory::MemoryViewWrite write, double dMin, double dMax) override; AuUInt NextArrayDoubleRangeFastInView(const AuMemoryViewWrite &write, double dMin, double dMax) override;
AuUInt NextArrayI32InView(Memory::MemoryViewWrite write) override; AuUInt NextArrayI32InView(const AuMemoryViewWrite &write) override;
AuUInt NextArrayU32InView(Memory::MemoryViewWrite write) override; AuUInt NextArrayU32InView(const AuMemoryViewWrite &write) override;
AuUInt NextArrayI64InView(Memory::MemoryViewWrite write) override; AuUInt NextArrayI64InView(const AuMemoryViewWrite &write) override;
AuUInt NextArrayU64InView(Memory::MemoryViewWrite write) override; AuUInt NextArrayU64InView(const AuMemoryViewWrite &write) override;
AuUInt NextArrayVec2InView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) override; AuUInt NextArrayVec2InView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB) override;
AuUInt NextArrayVec2FastInView(Memory::MemoryViewWrite write, AuVec2 boundA, AuVec2 boundB) override; AuUInt NextArrayVec2FastInView(const AuMemoryViewWrite &write, AuVec2 boundA, AuVec2 boundB) override;
AuUInt NextArrayVec2SortedInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max) override; AuUInt NextArrayVec2SortedInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max) override;
AuUInt NextArrayVec2SortedFastInView(Memory::MemoryViewWrite write, AuVec2 min, AuVec2 max) override; AuUInt NextArrayVec2SortedFastInView(const AuMemoryViewWrite &write, AuVec2 min, AuVec2 max) override;
AuUInt NextArrayVec3InView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) override; AuUInt NextArrayVec3InView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB) override;
AuUInt NextArrayVec3FastInView(Memory::MemoryViewWrite write, AuVec3 boundA, AuVec3 boundB) override; AuUInt NextArrayVec3FastInView(const AuMemoryViewWrite &write, AuVec3 boundA, AuVec3 boundB) override;
AuUInt NextArrayVec3SortedInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max) override; AuUInt NextArrayVec3SortedInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max) override;
AuUInt NextArrayVec3SortedFastInView(Memory::MemoryViewWrite write, AuVec3 min, AuVec3 max) override; AuUInt NextArrayVec3SortedFastInView(const AuMemoryViewWrite &write, AuVec3 min, AuVec3 max) override;
AuUInt NextArrayVec4InView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) override; AuUInt NextArrayVec4InView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB) override;
AuUInt NextArrayVec4FastInView(Memory::MemoryViewWrite write, AuVec4 boundA, AuVec4 boundB) override; AuUInt NextArrayVec4FastInView(const AuMemoryViewWrite &write, AuVec4 boundA, AuVec4 boundB) override;
AuUInt NextArrayVec4SortedInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max) override; AuUInt NextArrayVec4SortedInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max) override;
AuUInt NextArrayVec4SortedFastInView(Memory::MemoryViewWrite write, AuVec4 min, AuVec4 max) override; AuUInt NextArrayVec4SortedFastInView(const AuMemoryViewWrite &write, AuVec4 min, AuVec4 max) override;
AuUInt NextArrayVecD2InView(Memory::MemoryViewWrite write, AuVecD2 boundA, AuVecD2 boundB) override; AuUInt NextArrayVecD2InView(const AuMemoryViewWrite &write, AuVecD2 boundA, AuVecD2 boundB) override;
AuUInt NextArrayVecD2FastInView(Memory::MemoryViewWrite write, AuVecD2 boundA, AuVecD2 boundB) override; AuUInt NextArrayVecD2FastInView(const AuMemoryViewWrite &write, AuVecD2 boundA, AuVecD2 boundB) override;
AuUInt NextArrayVecD2SortedInView(Memory::MemoryViewWrite write, AuVecD2 min, AuVecD2 max) override; AuUInt NextArrayVecD2SortedInView(const AuMemoryViewWrite &write, AuVecD2 min, AuVecD2 max) override;
AuUInt NextArrayVecD2SortedFastInView(Memory::MemoryViewWrite write, AuVecD2 min, AuVecD2 max) override; AuUInt NextArrayVecD2SortedFastInView(const AuMemoryViewWrite &write, AuVecD2 min, AuVecD2 max) override;
AuUInt NextArrayVecD3InView(Memory::MemoryViewWrite write, AuVecD3 boundA, AuVecD3 boundB) override; AuUInt NextArrayVecD3InView(const AuMemoryViewWrite &write, AuVecD3 boundA, AuVecD3 boundB) override;
AuUInt NextArrayVecD3FastInView(Memory::MemoryViewWrite write, AuVecD3 boundA, AuVecD3 boundB) override; AuUInt NextArrayVecD3FastInView(const AuMemoryViewWrite &write, AuVecD3 boundA, AuVecD3 boundB) override;
AuUInt NextArrayVecD3SortedInView(Memory::MemoryViewWrite write, AuVecD3 min, AuVecD3 max) override; AuUInt NextArrayVecD3SortedInView(const AuMemoryViewWrite &write, AuVecD3 min, AuVecD3 max) override;
AuUInt NextArrayVecD3SortedFastInView(Memory::MemoryViewWrite write, AuVecD3 min, AuVecD3 max) override; AuUInt NextArrayVecD3SortedFastInView(const AuMemoryViewWrite &write, AuVecD3 min, AuVecD3 max) override;
AuUInt NextArrayVecD4InView(Memory::MemoryViewWrite write, AuVecD4 boundA, AuVecD4 boundB) override; AuUInt NextArrayVecD4InView(const AuMemoryViewWrite &write, AuVecD4 boundA, AuVecD4 boundB) override;
AuUInt NextArrayVecD4FastInView(Memory::MemoryViewWrite write, AuVecD4 boundA, AuVecD4 boundB) override; AuUInt NextArrayVecD4FastInView(const AuMemoryViewWrite &write, AuVecD4 boundA, AuVecD4 boundB) override;
AuUInt NextArrayVecD4SortedInView(Memory::MemoryViewWrite write, AuVecD4 min, AuVecD4 max) override; AuUInt NextArrayVecD4SortedInView(const AuMemoryViewWrite &write, AuVecD4 min, AuVecD4 max) override;
AuUInt NextArrayVecD4SortedFastInView(Memory::MemoryViewWrite write, AuVecD4 min, AuVecD4 max) override; AuUInt NextArrayVecD4SortedFastInView(const AuMemoryViewWrite &write, AuVecD4 min, AuVecD4 max) override;
AuUInt NextArrayDoubleInView(Memory::MemoryViewWrite write) override; AuUInt NextArrayDoubleInView(const AuMemoryViewWrite &write) override;
AuUInt NextArrayDecimalsInView(Memory::MemoryViewWrite write) override; AuUInt NextArrayDecimalsInView(const AuMemoryViewWrite &write) override;
AuUInt NextArrayDecimalsFastInView(Memory::MemoryViewWrite write) override; AuUInt NextArrayDecimalsFastInView(const AuMemoryViewWrite &write) override;
AuUInt NextArrayUUIDsInView(Memory::MemoryViewWrite write) override; AuUInt NextArrayUUIDsInView(const AuMemoryViewWrite &write) override;
double NextDecimal() override; double NextDecimal() override;
double NextNumber(double dMin, double dMax) override; double NextNumber(double dMin, double dMax) override;