Uncommons Maths Changelog

What's new in Uncommons Maths 1.2.2

Feb 16, 2012
  • Fixed serialisation of MersenneTwisterRNG and CellularAutomatonRNG.
  • Made XORShiftRNG and CMWC4096RNG thread-safe.
  • Added source JAR to distribution.

New in Uncommons Maths 1.2.1 (Feb 16, 2012)

  • Converted internal state of XORShiftRNG from an array to five separate
  • fields. This results in improved performance. Optimisation suggested by Jos
  • Hirth.
  • Optimised the Probability class so that it doesn't make an RNG call when the
  • probability is 1.
  • Added swapSubstring method to enable efficient exchange of data between two
  • BitStrings.

New in Uncommons Maths 1.2 (Feb 16, 2012)

  • Added two new fast PRNGs (CMWC and XOR). CMWC provides a very long period
  • and the XOR RNG is twice as fast as the Mersenne Twister. See
  • http://school.anhb.uwa.edu.au/personalpages/kwessen/shared/Marsaglia03.html
  • for descriptions.
  • Fixed RandomDotOrgSeedGenerator so that it can generate seeds > 1kb in size.
  • Changed RandomDotOrgSeedGenerator so that it uses HTTPS for communicating
  • with the website (ISSUE#9).
  • Introduced the Probability class, a new numeric type. This immutatble value
  • type encapsulates a probability value between zero and one. The class
  • enforces the 0..1 bounds and provides convenient methods for working with
  • probabilities.
  • Added Rational type to enable arithmetic on rational numbers without loss of
  • precision.
  • Added restrictRange methods to Maths class. These adjust a given value so
  • that it falls between specified minimum and maximum values.
  • Made caching of BigInteger factorials thread-safe.

New in Uncommons Maths 1.1 (Feb 16, 2012)

  • PermutationGenerator and CombinationGenerator now implement
  • java.lang.Iterable (ISSUE#1).
  • Moved PermutationGenerator and CombinationGenerator into new combinatorics
  • package.
  • Moved NumberGenerator and its implementations into new number package.
  • Added demo program for different probability distributions (ISSUE#2).
  • Added method to the DataSet class for calculating the harmonic mean.
  • RNGs no longer log any information to stdout (ISSUE#7) by default.
  • The DefaultSeedGenerator class will log the seeds that it generates
  • only if the org.uncommons.maths.random.debug System property is set to true.
  • Relaxed restriction on the maximum size of the element set used by
  • CombinationGenerator. The maximum was 20 but bigger sets are now permitted
  • as long as the total number of combinations is no more than 2^63 (ISSUE#8).
  • Added a cache for BigInteger factorial values. This avoids expensive
  • recalculation in code that repeatedly computes factorials.

New in Uncommons Maths 1.0.2 (Feb 16, 2012)

  • Added generator for exponential distribution.
  • Fixed possibility of out-of-range values in continuous uniform generator.
  • Modified AESCounterRNG to allow seed size (AES key size) to be specified.
  • Defaults to 128-bits. 192-bits and 256-bits are supported but they require
  • the unlimited strength cryptography policy files (available from Sun) to be
  • installed on the local machine.

New in Uncommons Maths 1.0.1 (Feb 16, 2012)

  • Added minimum, maximum and median methods to DataSet class.
  • Fixed logic around zero-length combinations and permutations.
  • Improved unit test coverage.