1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

remove unnecessary casts everywhere

This commit is contained in:
Alexander Medvednikov
2019-12-07 15:51:00 +03:00
parent d7ccbba2c9
commit f51784ee01
8 changed files with 38 additions and 33 deletions

View File

@ -10,14 +10,14 @@ mut:
}
/**
* new_pcg32 - a Pcg32 PRNG generator
* @param initstate - the initial state of the PRNG.
* @param initstate - the initial state of the PRNG.
* @param initseq - the stream/step of the PRNG.
* @return a new Pcg32 PRNG instance
*/
pub fn new_pcg32(initstate u64, initseq u64) Pcg32 {
mut rng := Pcg32{}
rng.state = u64(0)
rng.inc = u64( u64(initseq << u64(1)) | u64(1) )
rng.inc = (initseq << u64(1)) | u64(1)
rng.next()
rng.state += initstate
rng.next()
@ -27,12 +27,12 @@ pub fn new_pcg32(initstate u64, initseq u64) Pcg32 {
* Pcg32.next - update the PRNG state and get back the next random number
* @return the generated pseudo random number
*/
[inline] pub fn (rng mut Pcg32) next() u32 {
[inline] pub fn (rng mut Pcg32) next() u32 {
oldstate := rng.state
rng.state = oldstate * u64(6364136223846793005) + rng.inc
xorshifted := u32( u64( u64(oldstate >> u64(18)) ^ oldstate) >> u64(27) )
rng.state = oldstate * (6364136223846793005) + rng.inc
xorshifted := u32( ( (oldstate >> u64(18)) ^ oldstate) >> u64(27) )
rot := u32( oldstate >> u64(59) )
return u32( (xorshifted >> rot) | (xorshifted << ((-rot) & u32(31))) )
return ( (xorshifted >> rot) | (xorshifted << ((-rot) & u32(31))) )
}
/**
* Pcg32.bounded_next - update the PRNG state. Get the next number < bound
@ -42,7 +42,7 @@ pub fn new_pcg32(initstate u64, initseq u64) Pcg32 {
[inline] pub fn (rng mut Pcg32) bounded_next(bound u32) u32 {
// To avoid bias, we need to make the range of the RNG a multiple of
// bound, which we do by dropping output less than a threshold.
threshold := u32( -bound % bound )
threshold := ( -bound % bound )
// Uniformity guarantees that loop below will terminate. In practice, it
// should usually terminate quickly; on average (assuming all bounds are
// equally likely), 82.25% of the time, we can expect it to require just
@ -51,8 +51,8 @@ pub fn new_pcg32(initstate u64, initseq u64) Pcg32 {
for {
r := rng.next()
if r >= threshold {
return u32( r % bound )
}
return ( r % bound )
}
}
return u32(0)
}

View File

@ -8,7 +8,7 @@ mut:
}
/**
* new_splitmix64 - a Splitmix64 PRNG generator
* @param seed the initial seed of the PRNG.
* @param seed the initial seed of the PRNG.
* @return a new Splitmix64 PRNG instance
*/
pub fn new_splitmix64(seed u64) Splitmix64 {
@ -19,11 +19,11 @@ pub fn new_splitmix64(seed u64) Splitmix64 {
* @return the generated pseudo random number
*/
[inline] pub fn (rng mut Splitmix64) next() u64 {
rng.state += u64(0x9e3779b97f4a7c15)
rng.state += (0x9e3779b97f4a7c15)
mut z := rng.state
z = (z ^ u64((z >> u64(30)))) * u64(0xbf58476d1ce4e5b9)
z = (z ^ u64((z >> u64(27)))) * u64(0x94d049bb133111eb)
return z ^ u64(z >> u64(31))
z = (z ^ ((z >> u64(30)))) * (0xbf58476d1ce4e5b9)
z = (z ^ ((z >> u64(27)))) * (0x94d049bb133111eb)
return z ^ (z >> (31))
}
/**
* Splitmix64.bounded_next - Get the next random number < bound
@ -31,12 +31,12 @@ pub fn new_splitmix64(seed u64) Splitmix64 {
* @return the generated pseudo random number
*/
[inline] pub fn (rng mut Splitmix64) bounded_next(bound u64) u64 {
threshold := u64( -bound % bound )
threshold := -bound % bound
for {
r := rng.next()
if r >= threshold {
return u64( r % bound )
}
return r % bound
}
}
return u64(0)
}