Skip to content

Releases: cicirello/JavaPermutationTools

JavaPermutationTools, v6.0.0

25 Jul 17:13
fef88e2
Compare
Choose a tag to compare

[6.0.0] - 2024-07-25

Added

  • SequenceSampler.getDefault() method for creating an instance of the default implementation of SequenceSampler.
  • SequenceSampler.getDefault(RandomGenerator) method for creating an instance of the default implementation of SequenceSampler from a given source of randomness.
  • SequenceSampler.getDefault(seed) method for creating an instance of the default implementation of SequenceSampler, specifying a seed for the random number generator.
  • Seeded constructors added to SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.
  • Default constructors added to SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.

Changed

  • Refactored to improve code quality and to perform minor optimizations of the following classes:
    • org.cicirello.permutations.distance.EditDistance
    • org.cicirello.sequences.distance.EditDistance
    • org.cicirello.sequences.distance.EditDistanceDouble
  • Refactored to improve code quality and to optimize SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, SequenceCompositeSampler.
  • Minor optimizations to Permutation.scramble() methods.

Removed

  • Removed the previously deprecated (in v5.1.0) constructor org.cicirello.sequences.distance.EditDistance(double, double, double). To compute edit distance with double-valued costs for arrays and other sequences, use the existing EditDistanceDouble class instead. This does not impact the class with the same name that computes edit distance for permutations (i.e., the org.cicirello.permutations.distance.EditDistance class still accepts doubles for the costs).
  • Removed default method implementations in SequenceSampler interface (all interface methods now implemented in the implementing classes).

Fixed

  • Fixed potential integer overflow error in ReinsertionDistance
  • Fixed transient fields in Permutation that shouldn't be transient
  • Classes implementing SequenceSampler interface: methods with probability p of sampling an element fixed to always use specified randomness source (previously incorrectly used default randomness source on some calls).
  • Fixed potential finalizer vulnerability in org.cicirello.sequences.distance.EditDistance, detected by SpotBugs analysis.

Dependencies

  • Bump rho-mu from 3.1.0 to 4.1.0
  • Bump org.cicirello:core from 2.5.0 to 2.7.0

CI/CD

  • Integrated SpotBugs static analysis into build process.
  • Integrated Find Security Bugs static analysis into build process.
  • Discontinued publication of a jar-with-dependencies (BREAKING CHANGE only if you were using the fat jar).

JavaPermutationTools, v5.1.0

30 May 13:48
b58f33a
Compare
Choose a tag to compare

[5.1.0] - 2023-05-30

Deprecated

  • Deprecated double-valued costs constructor of EditDistance for arrays and other sequences, with the existing EditDistanceDouble class as its replacement. This constructor will be removed in the next major release, most likely sometime in the Fall of 2023.

Dependencies

  • Bump core from 2.4.6 to 2.5.0
  • Bump rho-mu from 3.0.4 to 3.1.0

JavaPermutationTools, v5.0.4

14 Apr 15:01
8d9dbeb
Compare
Choose a tag to compare

[5.0.4] - 2023-04-14

Changed

  • Optimized or otherwise refactored for code quality the scramble, reverse, and swapBlocks methods of the Permutation class.

JavaPermutationTools, v5.0.3

13 Apr 21:51
1ec5eec
Compare
Choose a tag to compare

[5.0.3] - 2023-04-13

Changed

  • Permutation now caches hash on first call to hashCode() to optimize applications that rely heavily on hashing.

Dependencies

  • Bump rho-mu from 3.0.3 to 3.0.4

JavaPermutationTools, v5.0.2

07 Mar 16:11
cb95058
Compare
Choose a tag to compare

[5.0.2] - 2023-03-07

Changed

  • Minor code improvements and/or optimizations within the following classes:
    • Permutation
    • PermutationIterator
    • KendallTauDistance
    • WeightedKendallTauDistance.
    • CyclicEdgeDistance
    • CyclicRTypeDistance.
    • The various SequenceSamplers
    • KendallTauSequenceDistance

Dependencies

  • Bump core from 2.4.4 to 2.4.6
  • Bump rho-mu from 3.0.2 to 3.0.3

JavaPermutationTools, v5.0.1

12 Jan 15:22
cd2960b
Compare
Choose a tag to compare

[5.0.1] - 2023-01-12

Dependencies

  • Bump core from 2.4.3 to 2.4.4
  • Bump rho-mu from 3.0.1 to 3.0.2

JavaPermutationTools, v5.0.0

18 Nov 22:21
f7a2d36
Compare
Choose a tag to compare

[5.0.0] - 2022-11-18

BREAKING CHANGES: See the Removed section for details.

Added

  • Added the SequenceSampler interface's methods to SequenceCompositeSampler.
  • Added the SequenceSampler interface's methods to SequenceReservoirSampler.
  • Added the SequenceSampler interface's methods to SequencePoolSampler.
  • Added the SequenceSampler interface's methods to SequenceInsertionSampler.
  • Methods to sample by specifying probability of including element in sample to the classes that implement SequenceSampler
    including SequenceReservoirSampler, SequencePoolSampler, SequenceInsertionSampler, and SequenceCompositeSampler.

Changed

  • SequenceSampler converted from a utility class of static methods to an interface, retaining the existing static
    methods that use a default source of randomness, but introducing nextSample methods for classes to implement.

Removed

  • SequenceSampler.sampleReservoir methods, previously deprecated in 4.3.0, replaced by the SequenceReservoirSampler class.
  • SequenceSampler.samplePool methods, previously deprecated in 4.3.0, replaced by the SequencePoolSampler class.
  • SequenceSampler.sampleInsertion methods, previously deprecated in 4.3.0, replaced by the SequenceInsertionSampler class.

Dependencies

  • Bump rho-mu from 2.5.0 to 3.0.1

JavaPermutationTools, v4.3.1

17 Nov 19:23
f2c2886
Compare
Choose a tag to compare

[4.3.1] - 2022-11-17

Changed

Fixed

  • Corrected configuration of maven-shade-plugin to ensure full pom with all dependencies published during deploy.

Dependencies

  • Bump core from 2.4.0 to 2.4.3

CI/CD

Other

JavaPermutationTools, v4.3.0

17 Oct 16:31
9e9043c
Compare
Choose a tag to compare

[4.3.0] - 2022-10-17

Added

  • EditDistanceDouble: extracted from EditDistance (for sequences) all of the distancef methods for
    double-valued distances. The original EditDistance now subclasses this one to retain existing functionality.
  • Extracted the following classes from SequenceSampler that implement different algorithms for efficiently
    randomly sampling array elements without replacement:
    • SequencePoolSampler: the pool sampling algorithm of Ernvall and Nevalainen (1982),
    • SequenceReservoirSampler: the reservoir sampling algorithm of Vitter (1985),
    • SequenceInsertionSampler: the insertion sampling algorithm of Cicirello (2022), and
    • SequenceCompositeSampler: the composite of the above three of Cicirello (2022).

Changed

  • Refactored the following classes to reduce cyclomatic complexity, or for other maintainability reasons:
    • SequenceSampler
    • ExactMatchDistance (for sequences)
    • KendallTauSequenceDistance
    • EditDistance (for sequences)

Deprecated

  • The SequenceSampler.sampleReservoir methods, which are now replaced by the SequenceReservoirSampler class.
  • The SequenceSampler.samplePool methods, which are now replaced by the SequencePoolSampler class.
  • The SequenceSampler.sampleInsertion methods, which are now replaced by the SequenceInsertionSampler class.

Dependencies

  • Bump rho-mu from 2.4.1 to 2.5.0
  • Bump core from 2.2.2 to 2.4.0

JavaPermutationTools, v4.2.0

30 Aug 17:09
9d2d9af
Compare
Choose a tag to compare

[4.2.0] - 2022-08-30

Added

  • Four Permutation.applyThenValidate methods, which are counterparts to the four Permutation.apply methods, but which validate the Permutation(s) that result from the applied operator; whereas the existing apply methods do not verify the state of the Permutation after operator application.
  • IllegalPermutationStateException exception class that is thrown by the new Permutation.applyThenValidate methods if validation fails.

Dependencies

  • Bump rho-mu from 2.3.2 to 2.4.1