TempleOSTS_140317.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:46:02 +02:00
1 parent 2d2a65d572
commit 7ef616a20e
1416 files changed
+223873 -53917

No files matched your search

+178
View File
@@ -0,0 +1,178 @@
F64 Clamp(F64 num,F64 lo,F64 hi)
{
if (num<lo)
return lo;
if (num>hi)
return hi;
return num;
}
F64 Min(F64 n1,F64 n2)
{
if (n1<=n2)
return n1;
else
return n2;
}
F64 Max(F64 n1,F64 n2)
{
if (n1>=n2)
return n1;
else
return n2;
}
F64 Pow10I64(I64 i)
{
if (i>308)
return ì;
else if (i<-308)
return 0.0;
else
return pow10_I64[i+309];
}
U64 FloorU64(U64 num,U64 to)
{
return num-num%to;
}
U64 CeilU64(U64 num,U64 to)
{
num+=to-1;
return num-num%to;
}
I64 RoundI64(I64 num,I64 to)
{
return num-num%to;
}
I64 FloorI64(I64 num,I64 to)
{
if (num>=0)
return num-num%to;
else {
num++;
return num-num%to-to;
}
}
I64 CeilI64(I64 num,I64 to)
{
if (num>=0) {
num+=to-1;
return num-num%to;
} else {
num+=to-1;
return num-num%to-to;
}
}
//See $LK,"::/Doc/Acknowledgements.TXT"$.
U16 RandU16()
{
sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
return sys_rnd_seed.u16[0];
}
I16 RandI16()
{
sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
return sys_rnd_seed.i16[0];
}
U32 RandU32()
{
sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
return sys_rnd_seed.u32[0];
}
I32 RandI32()
{
sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
return sys_rnd_seed.i32[0];
}
U64 RandU64()
{
U64 result;
result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
result.u32[1]=sys_rnd_seed.i32[0]= 1664525*sys_rnd_seed.i32[0]+1013904223;
return result;
}
I64 RandI64()
{
I64 result;
result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
result.u32[1]=sys_rnd_seed.i32[0]= 1664525*sys_rnd_seed.i32[0]+1013904223;
return result;
}
F64 Rand()
{ //0.0<=x<1.0
I64 result;
result.u32[0]=sys_rnd_seed.i32[0]=(1664525*sys_rnd_seed.i32[0]+1013904223)^GetTSC>>4;
result.u32[1]=sys_rnd_seed.i32[0]= 1664525*sys_rnd_seed.i32[0]+1013904223;
result&=0x3FFFFFFFFFFFFFFF;
return result/ToF64(0x4000000000000000);
}
U16 Rand2U16()
{
Fs->rnd_seed.i32[0]=1664525*Fs->rnd_seed.i32[0]+1013904223;
return Fs->rnd_seed.u16[0];
}
I16 Rand2I16()
{
Fs->rnd_seed.i32[0]=1664525*Fs->rnd_seed.i32[0]+1013904223;
return Fs->rnd_seed.i16[0];
}
U32 Rand2U32()
{
Fs->rnd_seed.i32[0]=1664525*Fs->rnd_seed.i32[0]+1013904223;
return Fs->rnd_seed.u32[0];
}
I32 Rand2I32()
{
Fs->rnd_seed.i32[0]=1664525*Fs->rnd_seed.i32[0]+1013904223;
return Fs->rnd_seed.i32[0];
}
U64 Rand2U64()
{
U64 result;
result.u32[0]=Fs->rnd_seed.i32[0]= 1664525*Fs->rnd_seed.i32[0]+1013904223;
result.u32[1]=Fs->rnd_seed.i32[0]= 1664525*Fs->rnd_seed.i32[0]+1013904223;
return result;
}
I64 Rand2I64()
{
I64 result;
result.u32[0]=Fs->rnd_seed.i32[0]= 1664525*Fs->rnd_seed.i32[0]+1013904223;
result.u32[1]=Fs->rnd_seed.i32[0]= 1664525*Fs->rnd_seed.i32[0]+1013904223;
return result;
}
F64 Rand2()
{ //0.0<=x<1.0
I64 result;
result.u32[0]=Fs->rnd_seed.i32[0]= 1664525*Fs->rnd_seed.i32[0]+1013904223;
result.u32[1]=Fs->rnd_seed.i32[0]= 1664525*Fs->rnd_seed.i32[0]+1013904223;
result&=0x3FFFFFFFFFFFFFFF;
return result/ToF64(0x4000000000000000);
}
U0 Randomize(I64 seed=0)
{ //Randomizes seed.
if (seed)
Fs->rnd_seed=seed;
else
Fs->rnd_seed=GetTSC>>4;
}