Skip to content

Commit

Permalink
Release 0.5.0 !
Browse files Browse the repository at this point in the history
  • Loading branch information
tommyettinger committed Dec 7, 2023
1 parent e8358f4 commit 681e470
Show file tree
Hide file tree
Showing 90 changed files with 526 additions and 294 deletions.
9 changes: 9 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
[0.5.0]
- [SEED BREAKING, POTENTIALLY] When the EnhancedRandom object isn't specified, Distribution types, DistributedRandom, and InterpolatedRandom now default to AceRandom instead of WhiskerRandom. This happens even if a seed is specified, but only when no EnhancedRandom was provided.
- Deserializer was missing some registrations; these are where they should be now.

[0.4.3]
- Add FlowRandom to non-testing generators, since it passes PractRand testing flawlessly.
- Fix LineWobble on GWT, usually by using BitConversion.imul().
- Add trobble() to LineWobble; it's a trigonometric wobble.

[0.4.2]
- Update digital dependency to 0.4.3, which allows Juniper to be used on GWT again.

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,15 +249,15 @@ cipher is just going to get ripped apart by any standard Java agent, so... don't
With Gradle, the dependency (of the core module, if you have multiple) is:

```
api "com.github.tommyettinger:juniper:0.4.3"
api "com.github.tommyettinger:juniper:0.5.0"
```

In a libGDX project that has a GWT/HTML backend, the `html/build.gradle` file
should additionally have:

```
implementation "com.github.tommyettinger:digital:0.4.5:sources"
implementation "com.github.tommyettinger:juniper:0.4.3:sources"
implementation "com.github.tommyettinger:juniper:0.5.0:sources"
```

And the `GdxDefinition.gwt.xml` file should have:
Expand All @@ -273,7 +273,7 @@ If you don't use Gradle, then with Maven, the dependency is:
<dependency>
<groupId>com.github.tommyettinger</groupId>
<artifactId>juniper</artifactId>
<version>0.4.3</version>
<version>0.5.0</version>
</dependency>
```

Expand Down
4 changes: 2 additions & 2 deletions docs/apidocs/allclasses-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>All Classes and Interfaces (juniper 0.4.3 API)</title>
<title>All Classes and Interfaces (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="class index">
Expand Down Expand Up @@ -344,7 +344,7 @@ <h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces<
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/github/tommyettinger/random/WhiskerRandom.html" title="class in com.github.tommyettinger.random">WhiskerRandom</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Typically the fastest generator here on recent JDKs, with a huge probable period but no minimum period guarantee.</div>
<div class="block">The second-fastest generator here on recent JDKs, with a huge probable period but no minimum period guarantee.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/github/tommyettinger/random/Xoroshiro128StarStarRandom.html" title="class in com.github.tommyettinger.random">Xoroshiro128StarStarRandom</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
Expand Down
2 changes: 1 addition & 1 deletion docs/apidocs/allpackages-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>All Packages (juniper 0.4.3 API)</title>
<title>All Packages (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="package index">
Expand Down
195 changes: 189 additions & 6 deletions docs/apidocs/com/github/tommyettinger/random/AceRandom.html

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ArchivalWrapper (juniper 0.4.3 API)</title>
<title>ArchivalWrapper (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: ArchivalWrapper">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ChopRandom (juniper 0.4.3 API)</title>
<title>ChopRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: ChopRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Crand64Random (juniper 0.4.3 API)</title>
<title>Crand64Random (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: Crand64Random">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Deserializer (juniper 0.4.3 API)</title>
<title>Deserializer (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: Deserializer">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>DistinctRandom (juniper 0.4.3 API)</title>
<title>DistinctRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: DistinctRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>DistributedRandom.ReductionMode (juniper 0.4.3 API)</title>
<title>DistributedRandom.ReductionMode (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: DistributedRandom, enum: ReductionMode">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>DistributedRandom (juniper 0.4.3 API)</title>
<title>DistributedRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: DistributedRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>EnhancedRandom (juniper 0.4.3 API)</title>
<title>EnhancedRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: EnhancedRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>FlowRandom (juniper 0.4.3 API)</title>
<title>FlowRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: FlowRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>FourWheelRandom (juniper 0.4.3 API)</title>
<title>FourWheelRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: FourWheelRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>GoldenQuasiRandom (juniper 0.4.3 API)</title>
<title>GoldenQuasiRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: GoldenQuasiRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>InterpolatedRandom (juniper 0.4.3 API)</title>
<title>InterpolatedRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: InterpolatedRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Jsf32Random (juniper 0.4.3 API)</title>
<title>Jsf32Random (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: Jsf32Random">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>KnownSequenceRandom (juniper 0.4.3 API)</title>
<title>KnownSequenceRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: KnownSequenceRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>LaserRandom (juniper 0.4.3 API)</title>
<title>LaserRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: LaserRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>LineWobble (juniper 0.4.3 API)</title>
<title>LineWobble (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: LineWobble">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>LongSequence (juniper 0.4.3 API)</title>
<title>LongSequence (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: LongSequence">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>LowChangeQuasiRandom (juniper 0.4.3 API)</title>
<title>LowChangeQuasiRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: LowChangeQuasiRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>MizuchiRandom (juniper 0.4.3 API)</title>
<title>MizuchiRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: MizuchiRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>PasarRandom (juniper 0.4.3 API)</title>
<title>PasarRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: PasarRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>PouchRandom (juniper 0.4.3 API)</title>
<title>PouchRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: PouchRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Respite32Random (juniper 0.4.3 API)</title>
<title>Respite32Random (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: Respite32Random">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ReverseWrapper (juniper 0.4.3 API)</title>
<title>ReverseWrapper (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: ReverseWrapper">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>RomuTrioRandom (juniper 0.4.3 API)</title>
<title>RomuTrioRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: RomuTrioRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ScruffRandom (juniper 0.4.3 API)</title>
<title>ScruffRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: ScruffRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Sfc64Random (juniper 0.4.3 API)</title>
<title>Sfc64Random (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: Sfc64Random">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>StrangerRandom (juniper 0.4.3 API)</title>
<title>StrangerRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: StrangerRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>TricycleRandom (juniper 0.4.3 API)</title>
<title>TricycleRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: TricycleRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>TrimRandom (juniper 0.4.3 API)</title>
<title>TrimRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: TrimRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>TupleQuasiRandom (juniper 0.4.3 API)</title>
<title>TupleQuasiRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: TupleQuasiRandom">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>VanDerCorputQuasiRandom (juniper 0.4.3 API)</title>
<title>VanDerCorputQuasiRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: VanDerCorputQuasiRandom">
Expand Down
18 changes: 15 additions & 3 deletions docs/apidocs/com/github/tommyettinger/random/WhiskerRandom.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>WhiskerRandom (juniper 0.4.3 API)</title>
<title>WhiskerRandom (juniper 0.5.0 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: com.github.tommyettinger.random, class: WhiskerRandom">
Expand Down Expand Up @@ -85,12 +85,24 @@ <h1 title="Class WhiskerRandom" class="title">Class WhiskerRandom</h1>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">WhiskerRandom</span>
<span class="extends-implements">extends <a href="EnhancedRandom.html" title="class in com.github.tommyettinger.random">EnhancedRandom</a></span></div>
<div class="block">Typically the fastest generator here on recent JDKs, with a huge probable period but no minimum period guarantee.
<div class="block">The second-fastest generator here on recent JDKs, with a huge probable period but no minimum period guarantee.
This generator is extremely similar to <a href="FourWheelRandom.html" title="class in com.github.tommyettinger.random"><code>FourWheelRandom</code></a>; they use the same operations except for an additional
subtraction that FourWheelRandom uses. Removing this one operation, and changing the order of and constants used by
the other operations, improves both quality and speed here. This can be considered stable, like the other
EnhancedRandom implementations here. This generator is between 10% and 20% faster than FourWheelRandom on Java 16 and
up, including on Graal but not counting Semeru JDKs (which seem to be generally slower for all microbenchmarks).
up, including on Graal but not counting Semeru JDKs (which seem to be generally slower for all microbenchmarks). This
generator is slightly slower than <a href="PouchRandom.html" title="class in com.github.tommyettinger.random"><code>PouchRandom</code></a> most of the time.
<br>
WhiskerRandom has been, in the past, used as the default generator here, and it could still be used as such. It
passes significant statistical testing, but only on one sequence of random numbers at a time (it only gets seeded
once in these tests). If it is tested as if it is a hash and not a random number generator (giving the 4 states as
inputs and getting a limited amount of random values), WhiskerRandom will do quite poorly, however. If multiple
states are the same between different compared generators, the output between those two can be very correlated. Other
generators, like the also-four-state <a href="PouchRandom.html" title="class in com.github.tommyettinger.random"><code>PouchRandom</code></a> and the five-state <a href="AceRandom.html" title="class in com.github.tommyettinger.random"><code>AceRandom</code></a>, do not have this issue
once enough values have been produced (usually about 30 longs). PouchRandom is faster on desktop hardware than
WhiskerRandom is, and it has a minimum guaranteed period of 2 to the 63, but it has some valid state restrictions
that make general-purpose usage more challenging. AceRandom is about as fast as Whisker, doesn't have restrictions on
valid states, and has a minimum guaranteed period of 2 to the 64.
<br>
Testing performed should be sufficient, but more can always be done; this passes at least 64TB of PractRand without
issues. This has been tested with Remortality, and it passes over 179 PB of that test without any suspect results.
Expand Down
Loading

0 comments on commit 681e470

Please sign in to comment.