Skip to content

Releases: tommyettinger/juniper

0.1.1 "Fetching The Distance"

16 Aug 04:38
Compare
Choose a tag to compare

This release is smaller than 0.1.0, but includes two new distributions (ZipfianDistribution and LogCauchyDistribution), and the first class to actually use Distribution practically, DistributedRandom! DistributedRandom wraps an EnhancedRandom and a Distribution to make another EnhancedRandom that distributes its results in any of various ways. ZipfianDistribution was requested because it makes sense in many situations where smaller results are more frequent (like Pareto), but the result needs to be bounded (unlike Pareto). No one specifically requested LogCauchyDistribution, but it has a really unusually-shaped graph, so it could be good for toying with the expectations of players in a game.

0.1.0 "Wonderful Whiskers"

01 Aug 05:49
Compare
Choose a tag to compare

This is a big one! Big, big, big.

First, there is a new generator, WhiskerRandom, that seems to be the fastest here while retaining very high quality. It has an unknown smallest cycle length, but unlike RomuTrioRandom (which has a similar issue), there isn't an easily-found failure state. It's passed about 150PB of testing with "Remortality" on the GPU without any trouble, and smoothly passes 64TB of PractRand testing. I'm confident enough in it that it is the default generator for...

Second, the new statistical distributions! These were copied from the C# library ShaiRandom, which got most of its generators from Troschuetz.Random. They were then all made so they can be serialized using the same style the EnhancedRandom classes can be serialized, and can be deserialized by Deserializer. There's a lot here, ranging from frequently-used ones like BetaDistribution and ExponentialDistribution to less-often-seen ones, like KumaraswamyDistribution and FisherSnedecorDistribution.

There's a demo app (on a release cycle unrelated to Juniper, the library) available at the GitHub Pages for this repo. It doesn't have many of the distributions yet, but it has a few different types.

0.0.3 "Wiggly Waggly Tail"

02 Jul 09:40
Compare
Choose a tag to compare

This release mostly updates LineWobble so it is faster and supports some new features (like being able to generate wrapping lookup tables, so the wobbly line or circle can be obtained as one float[]), and adds Xoshiro128PlusPlusRandom as a 32-bit math generator that has optimizations for generating 64-bit values. There's also more tests written, and the library seems stable.

0.0.2 "Snaggle-Tooth Smile"

16 May 06:01
Compare
Choose a tag to compare

This release exists purely as a GWT bugfix. The emulated ChopRandom class was out of date in 0.0.1 (only affecting HTML targets using GWT), and would fail to compile. Now it should work fine, since the problem code has been replaced with what works from the non-emulated version.

Good luck with this!

0.0.1 "Cheese Puff Princess"

14 May 04:49
Compare
Choose a tag to compare

This is the first release of Juniper, here, but it's been built on lots of work in jdkgdxds. It should be stable enough; the serialization code hasn't been seriously tested, but once it can go through the more rigorous tests in jdkgdxds-interop, I should have a better idea of how stable it is (much of the serialization code is very closely derived from existing code in jdkgdxds-interop anyway). You've got plenty of RNGs to choose from here; my personal preference is TrimRandom for applications that want both speed and quality (or just quality), or FourWheelRandom for ones where speed is paramount.