Skip to content

rho-mu, v4.0.0

Compare
Choose a tag to compare
@cicirello cicirello released this 14 May 19:10
· 34 commits to main since this release
c892ec2

[4.0.0] - 2024-05-14

Added

  • IndexPair record class for use in methods generating pairs of random indexes.
  • IndexTriple record class for use in methods generating triples of random indexes.
  • Methods in the RandomIndexer and EnhancedRandomGenerator classes that utilize the new IndexPair and IndexTriple when generating combinations of distinct random integers, as an alternative to the existing methods that return arrays, including:
    • Versions of nextIntPair using the new IndexPair class
    • Versions of nextIntTriple using the new IndexTriple class
    • Versions of nextWindowedIntPair using the new IndexPair class
    • Versions of nextWindowedIntTriple using the new IndexTriple class
  • Methods in the RandomIndexer and EnhancedRandomGenerator classes for generating additional combinations of distinct integers (both array-based versions and versions using IndexPair and IndexTriple), including:
    • nextSortedIntPair: a variation of nextIntPair whose result is in sorted order.
    • nextSortedIntTriple: a variation of nextIntTriple whose result is in sorted order.
    • nextSortedWindowedIntPair: a variation of nextWindowedIntPair whose result is in sorted order.
    • nextSortedWindowedIntTriple: a variation of nextWindowedIntTriple whose result is in sorted order.
  • Methods in the EnhancedRandomGenerator class for generating streams of combinations of distinct integers as streams of IndexPair or IndexTriple objects, including streams of the following:
    • Streams of random pairs of distinct integers (method pairs)
    • Streams of random pairs of distinct sorted integers (method sortedPairs)
    • Streams of random pairs of distinct integers, separated by at most a specified window (method windowedPairs)
    • Streams of random pairs of distinct sorted integers, separated by at most a specified window (method sortedWindowedPairs)
    • Streams of random triples of distinct integers (method triples)
    • Streams of random triples of distinct sorted integers (method sortedTriples)
    • Streams of random triples of distinct integers, separated by at most a specified window (method windowedTriples)
    • Streams of random triples of distinct sorted integers, separated by at most a specified window (method sortedWindowedTriples)
  • Shuffler class, and shuffle methods in EnhancedRandomGenerator class, for efficiently randomizing the ordering of elements in arrays and Lists.

Changed (BREAKING)

  • Changed ZigguratGaussian to a package-access class (BREAKING CHANGE): Instead use corresponding methods of the RandomVariates class.

Changed (non-breaking)

  • Refactored and optimized RandomIndexer.nextIntTriple methods.
  • Refactored and optimized RandomIndexer.nextWindowedIntPair methods.
  • Refactored and optimized RandomIndexer.nextWindowedIntTriple methods.

Removed

  • Removed PolarGaussian (BREAKING): Instead use corresponding methods of the RandomVariates class.

Fixed

  • Fixed potential finalizer vulnerability in class JacobiDiagonalization, identified by SpotBugs.

Dependencies

  • Bump org.cicirello:core from 2.5.0 to 2.7.0.
  • Retired publishing of a jar-with-dependencies (BREAKING CHANGE only if you were using the jar-with-dependencies).