initial import of differential evolution engine
This commit is contained in:
commit
70650ba753
7 files changed
+838
No files matched your search
+69
@@ -0,0 +1,69 @@
|
||||
#ifndef __derand_inl__
|
||||
#define __derand_inl__
|
||||
|
||||
|
||||
#if !(defined(__derand_h__))
|
||||
# error "derand.inl should only be included by derand.h"
|
||||
#endif
|
||||
|
||||
|
||||
inline void DE::Random::Seed(u32 seed)
|
||||
{
|
||||
this->seed = seed;
|
||||
}
|
||||
|
||||
inline DE::u32 DE::Random::Rand()
|
||||
{
|
||||
seed = ( (seed * DE::Random::MULTIPLIER) + DE::Random::INCREMENT );
|
||||
seed %= DE::Random::MODULUS;
|
||||
|
||||
return seed;
|
||||
}
|
||||
|
||||
inline DE::u32 DE::Random::operator()()
|
||||
{
|
||||
return this->Rand();
|
||||
}
|
||||
|
||||
inline float DE::Random::RandFloat()
|
||||
{
|
||||
return (float)Rand() / (float)DE::Random::U32_MAX;
|
||||
}
|
||||
|
||||
inline float DE::Random::RandFloat(float min, float max)
|
||||
{
|
||||
return ( RandFloat() * (max - min) + min );
|
||||
}
|
||||
|
||||
inline double DE::Random::RandDouble()
|
||||
{
|
||||
return (double)Rand() / (double)DE::Random::U32_MAX;
|
||||
}
|
||||
|
||||
inline double DE::Random::RandDouble(double min, double max)
|
||||
{
|
||||
return ( RandDouble() * (max - min) + min );
|
||||
}
|
||||
|
||||
inline DE::u32 DE::Random::RandU32()
|
||||
{
|
||||
return Rand();
|
||||
}
|
||||
|
||||
inline DE::u32 DE::Random::RandU32(DE::u32 min, DE::u32 max)
|
||||
{
|
||||
return ( ( Rand() % (max - min) ) + min );
|
||||
}
|
||||
|
||||
inline DE::s32 DE::Random::RandS32()
|
||||
{
|
||||
return (DE::s32)Rand();
|
||||
}
|
||||
|
||||
inline DE::s32 DE::Random::RandS32(DE::s32 min, DE::s32 max)
|
||||
{
|
||||
return (DE::s32)( ( Rand() % (max - min) ) + min );
|
||||
}
|
||||
|
||||
#endif // __derand_inl__
|
||||
|
||||
Reference in new issue
Block a user