"

Blog

New Release - Version 0.2.0

Published
Sunday, 20 December 2020
Category
Releases
Author
ociaw

RandN v0.2.0 has been released! It's available at NuGet and GitHub. Highlights of this release include:

  • ChaCha is now SIMD accerated and has between 6x-11x higher throughput on CPUs supporting AVX2 on .NET Core 3.1 and 5+ compared to .NET Framework 4.7.2.
  • The RandN.Distributions namespace has been reworked significantly to make discovery and usage easier.
  • Comprehensive unit test coverage.
  • Many bugs found and fixed thanks to improved testing.
  • This fancy documentation website!

A full list of changes, including breaking changes from v0.1 to v0.2, is included further below.

What's next?

More distributions and more RNG algorithms - whether or not these will be included alongside RandN's primary NuGet package or on another is still TBD.

More efficient one-off range distribution - right now, an entire Uniform object must be built before sampling a range; this could make some use cases, such as the RandomShim, much more efficient.

Improvements to website versioning - only the Docs and API need to be versioned, not the blog or the index page.

Full Changelog

New APIs

Updated APIs

Removed APIs

  • Removed the Sample extension methods - these were questionably useful, and could be up to four times slower than their non-extension counterpart, IDistribution.Sample.

Bug fixes

  • Distributions returning floating point numbers would sometimes sample a number outside the desired range on .NET Framework x86, which can use 80-bit floating point calculations, instead of 64-bit. Results are now forced to 64-bit precision before returning.
  • BitwiseExtensions.RotateRight now rotates bits right instead of left on .NET Core 3.1+.
  • All places where overflow is expected is now wrapped with unchecked.

Miscellaneous

  • Full test coverage, excluding portions that can't be tested without a big-endian processor.
  • Pure methods and properties in RandN.Core have been marked with the [Pure] attribute.
  • Use of C# 9 features across the board where possible.
  • Fixed a bunch of things suggested by ReSharper.
  • More benchmarks have been added.

New Site

Published
Thursday, 25 June 2020
Category
Website
Author
ociaw

The new site for RandN is up - though if you're reading this, you probably already know that. Built with Wyam, it's got this dedicated blog, an area for handwritten documentation, and API documentation generated from the RandN source code.

Read more...

First Release - Version 0.1.0

Published
Saturday, 20 June 2020
Category
Releases
Author
ociaw

The first version of RandN has been released!

Read more...