aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/objects/XSTR.java
diff options
context:
space:
mode:
authorMatt <mtthw8198@gmail.com>2021-06-01 14:18:25 -0700
committerMatt <mtthw8198@gmail.com>2021-06-01 14:18:25 -0700
commitf87217e9a044b0f017d4b821017f697ca6568f42 (patch)
treeaad0a14640e146837c950157750e3ad6cca88ea5 /src/main/java/gregtech/api/objects/XSTR.java
parent08aa6a7f525eea881a00331bc75f055c3d275c3e (diff)
parent9555f77feccabf92d3bcc20c985c2060e2455600 (diff)
downloadGT5-Unofficial-f87217e9a044b0f017d4b821017f697ca6568f42.tar.gz
GT5-Unofficial-f87217e9a044b0f017d4b821017f697ca6568f42.tar.bz2
GT5-Unofficial-f87217e9a044b0f017d4b821017f697ca6568f42.zip
Merge remote-tracking branch 'origin/experimental' into experimental
Diffstat (limited to 'src/main/java/gregtech/api/objects/XSTR.java')
-rw-r--r--src/main/java/gregtech/api/objects/XSTR.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/gregtech/api/objects/XSTR.java b/src/main/java/gregtech/api/objects/XSTR.java
index 22bcf91dbe..a2c4906345 100644
--- a/src/main/java/gregtech/api/objects/XSTR.java
+++ b/src/main/java/gregtech/api/objects/XSTR.java
@@ -44,7 +44,7 @@ public class XSTR extends Random {
private static final double DOUBLE_UNIT = 0x1.0p-53; // 1.0 / (1L << 53)
private static final float FLOAT_UNIT = 0x1.0p-24f; // 1.0f / (1 << 24)
private static final AtomicLong seedUniquifier = new AtomicLong(8682522807148012L);
- public final static XSTR XSTR_INSTANCE=new XSTR(){
+ public static final XSTR XSTR_INSTANCE=new XSTR(){
@Override
public synchronized void setSeed(long seed) {
if(!Thread.currentThread().getStackTrace()[2].getClassName().equals(Random.class.getName()))
@@ -86,10 +86,12 @@ public class XSTR extends Random {
public XSTR(long seed) {
this.seed = seed;
}
+ @Override
public boolean nextBoolean() {
return next(1) != 0;
}
+ @Override
public double nextDouble() {
return (((long)(next(26)) << 27) + next(27)) * DOUBLE_UNIT;
}
@@ -109,6 +111,7 @@ public class XSTR extends Random {
*
* @param seed the new seed
*/
+ @Override
public synchronized void setSeed(long seed) {
this.seed = seed;
}
@@ -129,6 +132,7 @@ public class XSTR extends Random {
* @param nbits
* @return
*/
+ @Override
public int next(int nbits) {
long x = seed;
x ^= (x << 21);
@@ -140,7 +144,8 @@ public class XSTR extends Random {
}
boolean haveNextNextGaussian = false;
double nextNextGaussian = 0;
- synchronized public double nextGaussian() {
+ @Override
+ public synchronized double nextGaussian() {
// See Knuth, ACP, Section 3.4.1 Algorithm C.
if (haveNextNextGaussian) {
haveNextNextGaussian = false;
@@ -213,6 +218,7 @@ public class XSTR extends Random {
* @throws IllegalArgumentException if bound is not positive
* @since 1.2
*/
+ @Override
public int nextInt(int bound) {
//if (bound <= 0) {
//throw new RuntimeException("BadBound");
@@ -238,19 +244,23 @@ public class XSTR extends Random {
int out = (int) last % bound;
return (out < 0) ? -out : out;
}
+ @Override
public int nextInt() {
return next(32);
}
+ @Override
public float nextFloat() {
return next(24) * FLOAT_UNIT;
}
+ @Override
public long nextLong() {
// it's okay that the bottom word remains signed.
return ((long)(next(32)) << 32) + next(32);
}
+ @Override
public void nextBytes(byte[] bytes_arr) {
for (int iba = 0, lenba = bytes_arr.length; iba < lenba; )
for (int rndba = nextInt(),
@@ -258,4 +268,4 @@ public class XSTR extends Random {
nba-- > 0; rndba >>= Byte.SIZE)
bytes_arr[iba++] = (byte)rndba;
}
-} \ No newline at end of file
+}