Recent Releases of JavaPermutationTools

JavaPermutationTools - JavaPermutationTools, v6.0.1

[6.0.1] - 2025-05-15

Dependencies

  • Bump org.cicirello:rho-mu from 4.1.0 to 4.2.1
  • Bump org.cicirello:core from 2.7.0 to 2.7.1

Other

  • Migrated deployment from the old OSSRH to the new Central.

Scientific Software - Peer-reviewed - Java
Published by cicirello 9 months ago

JavaPermutationTools - JavaPermutationTools, v6.0.0

[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).

Scientific Software - Peer-reviewed - Java
Published by cicirello over 1 year ago

JavaPermutationTools - JavaPermutationTools, v5.1.0

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello over 2 years ago

JavaPermutationTools - JavaPermutationTools, v5.0.4

[5.0.4] - 2023-04-14

Changed

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

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 3 years ago

JavaPermutationTools - JavaPermutationTools, v5.0.3

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 3 years ago

JavaPermutationTools - JavaPermutationTools, v5.0.2

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 3 years ago

JavaPermutationTools - JavaPermutationTools, v5.0.1

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello about 3 years ago

JavaPermutationTools - JavaPermutationTools, v5.0.0

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello over 3 years ago

JavaPermutationTools - JavaPermutationTools, v4.3.1

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello over 3 years ago

JavaPermutationTools - JavaPermutationTools, v4.3.0

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello over 3 years ago

JavaPermutationTools - JavaPermutationTools, v4.2.0

[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

Scientific Software - Peer-reviewed - Java
Published by cicirello over 3 years ago

JavaPermutationTools - JavaPermutationTools, v4.1.0

[4.1.0] - 2022-08-03

Added

  • PermutationFullUnaryOperator and PermutationFullBinaryOperator functional interfaces for the purpose of specifying custom operations on Permutation objects. These are variations of the existing PermutationUnaryOperator and PermutationBinaryOperator interfaces that were added in 3.2.0, but with both the raw int arrays and Permutation objects passed to the operators.
  • Permutation.apply methods, one for each of the two new PermutationFullUnaryOperator and PermutationFullBinaryOperator interfaces, for applying such custom Permutation operators.

Dependencies

  • Bump core from 2.1.0 to 2.2.2.
  • Bump rho-mu from 2.3.0 to 2.3.2.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 3 years ago

JavaPermutationTools - JavaPermutationTools, v4.0.0

[4.0.0] - 2022-06-02

BREAKING CHANGES: This is a major release that includes breaking changes. See details below.

Added

  • Support for all Java 17 random number generators in generating random Permutation objects.

Changed

  • Minimum supported Java version is now Java 17 (breaking change).
  • Utilized Java 17 RandomGenerator interface to eliminate redundant code.

Removed

  • Permutation.Mechanic nested class previously deprecated in v3.2.0 (breaking change).

Dependencies

  • Bumped core from 1.1.0 to 2.1.0 (breaking change).
  • Bumped rho-mu from 1.2.0 to 2.3.0 (breaking change).

Scientific Software - Peer-reviewed - Java
Published by cicirello over 3 years ago

JavaPermutationTools - JavaPermutationTools, v3.3.0

[3.3.0] - 2022-06-01

Added

  • CycleDistance: implementation of cycle distance described in https://doi.org/10.3390/app12115506
  • CycleEditDistance: implementation of cycle edit distance described in https://doi.org/10.3390/app12115506
  • KCycleDistance: implementation of k-cycle distance described in https://doi.org/10.3390/app12115506

Fixed

  • ReversalDistance.max method now handles general case properly.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 3 years ago

JavaPermutationTools - JavaPermutationTools, v3.2.0

[3.2.0] - 2022-03-17

Added

  • PermutationUnaryOperator and PermutationBinaryOperator functional interfaces for the purpose of specifying custom operations on Permutation objects.
  • Permutation.apply methods, one for each of the two new PermutationUnaryOperator and PermutationBinaryOperator interfaces, for applying such custom Permutation operators.

Changed

  • Various improvements to the documentation.

Deprecated

  • The Permutation.Mechanic nested class, which will be removed in the next major release 4.0.0. The new Permutation.apply methods should be used instead.

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 4 years ago

JavaPermutationTools - JavaPermutationTools, v3.1.1

[3.1.1] - 2022-02-17

Fixed

  • Fixed inefficient memory usage in KendallTauDistance (issue #183)
  • Fixed inefficient memory usage in KendallTauSequenceDistance (issue #184)
  • Fixed inefficient memory usage in WeightedKendallTauDistance (issue #185)
  • Fixed inefficiency in WeightedKendallTauDistance related to redundant computation (issue #182)

Scientific Software - Peer-reviewed - Java
Published by cicirello about 4 years ago

JavaPermutationTools - JavaPermutationTools, v3.1.0

[3.1.0] - 2022-02-15

Added

  • WeightedKendallTauDistance: an implementation of a weighted version of Kendall tau distance

Changed

  • Bumped dependency rho-mu to 1.2.0
  • Bumped dependency org.cicirello.core to 1.1.0
  • Migrated test cases to JUnit 5 (specifically JUnit Jupiter 5.8.2).

CI/CD

  • Automated commenting of test coverage percentages on pull requests.
  • Revised documentation workflow to deploy to API doc updates to website only on releases to ensure consistent with latest library release.

Other

  • Various updates to project website.

Scientific Software - Peer-reviewed - Java
Published by cicirello about 4 years ago

JavaPermutationTools - JavaPermutationTools, v3.0.0

[3.0.0] - 2021-09-24

Changed

  • Minimum supported Java version is now Java 11+.
  • The library now uses Java modules, providing the module org.cicirello.jpt, which includes the existing packages org.cicirello.permutations and org.cicirello.sequences, as well as their subpackages.
  • The randomization and other math utilities, previously contained in the package org.cicirello.math and its subpackages have been moved to a new library ρμ, within a module org.cicirello.rho_mu. That module is now a dependency of jpt, declared with a requires transitive to ease the transition for existing users of JPT (they should only need a requires org.cicirello.jpt to get access to that functionality as well).
  • Similar to the above, the package org.cicirello.util has been moved out of JPT to a new library org.cicirello.core, within a module org.cicirello.core. The package name of org.cicirello.util has been kept. This new module is now a dependency of JPT. And just as in the case with the math and randomization utilities, JPT declares the module requires with requires transitive to ease the transition of existing users.
  • We will now also publish a jar-with-dependencies for those users of the library who do not use a dependency manager. This fat jar contains the library and all dependencies. This fat jar is not modularized (unlike the regular jar), as Java only allows a single module per jar. However, it is still built for a Java 11 target.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 4 years ago

JavaPermutationTools - JavaPermutationTools, v2.6.5

[2.6.5] - 2021-09-10

Other

  • Fixed Zenodo metadata. This release is strictly to confirm correct integration with Zenodo. There are no actual changes or additions, etc to the library itself.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 4 years ago

JavaPermutationTools - JavaPermutationTools, v2.6.4

[2.6.4] - 2021-09-10

Other

  • Configured a CITATION.cff file in repository. This release is strictly to confirm correct integration with Zenodo. There are no actual changes or additions, etc to the library itself.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 4 years ago

JavaPermutationTools - JavaPermutationTools, v2.6.3

[2.6.3] - 2021-09-10

Other

  • Configured a CITATION.cff file in repository. This release is strictly to confirm correct integration with Zenodo. There are no actual changes or additions, etc to the library itself.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 4 years ago

JavaPermutationTools - JavaPermutationTools, v2.6.2

[2.6.2] - 2021-09-10

Other

  • Configured a CITATION.cff file in repository. This release is strictly to confirm correct integration with Zenodo. There are no actual changes or additions, etc to the library itself. Zenodo only pulls on releases.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 4 years ago

JavaPermutationTools - JavaPermutationTools, v2.6.1

[2.6.1] - 2021-05-13

Changed

  • Various code improvements based on initial run of MuseDev static analysis. Changes included eliminating error prone code, etc, but no actual bugs were uncovered.

CI/CD

  • Upgraded coverage reporting to JaCoCo 0.8.7.
  • Enabled MuseDev code scanning on all pull requests.

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 5 years ago

JavaPermutationTools - JavaPermutationTools, v2.6.0

[2.6.0] - 2021-04-02

Added

  • Added the Permutation.Mechanic.set(Permutation, int[], int, int, int) method.

Changed

  • Refactored the SequenceDistanceMeasurer and SequenceDistanceMeasurerDouble interfaces into a hierarchy, eliminated an abstract base class made obsolete by that change, and changed all sequence distances in the library to use the new hierarchy. This is a non-breaking change, as the only thing removed was a package-private abstract class, and the change to the SequenceDistanceMeasurer interface was done in such a way that all inherited methods have default implementations.
  • Refactored the PermutationDistanceMeasurer, PermutationDistanceMeasurerDouble, NormalizedPermutationDistanceMeasurer, and NormalizedPermutationDistanceMeasurerDouble interfaces, and all of the classes that implement them, to move default implementations from an abstract base class into the appropriate subinterfaces in hierarchy. This is a non-breaking change, as the only thing removed was a package-private abstract class, and the changes to interfaces were done in such a way that all inherited methods have default implementations.

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 5 years ago

JavaPermutationTools - JavaPermutationTools, v2.5.0

[2.5.0] - 2021-03-29

Added

  • New methods added to the Permutation class.
    • The cycle method creates a permutation cycle.
    • Multiple variations of a scramble(int[] indexes) method that randomizes the elements indicated by the array of indexes. The variations of this method correspond to the different random number generators supported by the library.

Changed

  • Minor code improvements in Permutation class (e.g., refactoring to reduce duplicated code, and some minor code optimizations).

CI/CD

  • Started using CodeQL code scanning on all push/pull-request events.

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 5 years ago

JavaPermutationTools - JPT v2.4.0

[2.4.0] - 2021-02-15

Changed

  • Minor optimizations to ReversalDistance and ReinsertionDistance.
  • Refactored the RandomVariates.nextCauchy methods to remove redundancy.
  • Refactored org.cicirello.math.rand.BTPE to remove redundancy.
  • Refactored various methods of RandomIndexer to remove redundancy.
  • Minor optimizations to RandomIndexer.sample methods.

Fixed

  • Fixed large magnitude negative input case in MathFunctions.logGamma.
  • Fixed but in JacobiDiagonalization in case when default epsilon is not used.

CI/CD

  • Added test cases to improve test coverage to 100%.

Scientific Software - Peer-reviewed - Java
Published by cicirello about 5 years ago

JavaPermutationTools - JPT v2.3.0

[2.3.0] - 2021-01-30

Added

  • Test cases added to improve test coverage.

Changed

  • Modified API documentation website (https://jpt.cicirello.org/) to improve browsing on mobile devices.
  • Minor optimizations in Permutation class.

Removed

  • Moved the example programs to a new repository. They were previously found in directories examples and replication, both of which have been removed. All of the examples are now located in the repository: https://github.com/cicirello/jpt-examples.
  • Removed jars of the library from the repo. These have been available from Maven Central, GitHub Packages, and GitHub Releases, for quite some time. No need to store in repo, and it is inefficient to do so.
  • Removed the zip files generated by javadoc of the indexes for the api website. These are not needed for search functionality, as javadoc also stores and uses the js files contained in these zips. Later versions of javadoc no longer generate these. Also gitignored these to prevent future storage.

Fixed

  • Bug in Permutation.toString which was inserting an extra space at end.
  • Added validation checking for all permutation distance measures validating same length permutations (except for EditDistance which can handle that case).
  • Bug in ReversalDistance.max in case when permutation length is 2, and also added missing parameter validation.
  • Minor bug fix in KendallTauSequenceDistance in the case of distance between arrays of floats.

CI/CD

  • Migrated build process from Ant to Maven, including GitHub workflows.
  • Migrated workflow for generating library website from Ant to Maven.
  • Added test coverage via JaCoCo.

Scientific Software - Peer-reviewed - Java
Published by cicirello about 5 years ago

JavaPermutationTools - JPT, version 2.2.0

About JavaPermutationTools

The JavaPermutationTools (JPT) library provides Java classes and interfaces, etc that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

[2.2.0] - 2020-09-18

Changed

  • Modernized API documentation website (https://jpt.cicirello.org/) to html5 with search and no frames.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JPT, version 2.1.3

[2.1.3] - 2020-09-16

Changed

  • Revised workflow for publishing packages to publish to both Maven Central and Github Packages using one pom.xml.
  • Documentation updates

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JPT, version 2.1.2

[2.1.2] - 2020-09-15

Fixed

  • Workflow for publishing to Maven Central (bug in signing)

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JPT, version 2.1.1

[2.1.1] - 2020-09-15

Fixed

  • Workflow for publishing to Maven Central

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JPT, version 2.1.0

[2.1.0] - 2020-09-15

Added

  • Automated generation of sitemap.xml via GitHub actions for the documentation website.
  • .zenodo.json file for providing metadata to Zenodo for archival purposes.
  • This ChangeLog was introduced, compiled from release notes of prior releases. The ChangeLog is likely inaccurate prior to this date, but should include the major changes. Beginning with this release, the ChangeLog will be updated at the time of pull requests.
  • Enabled DependaBot to keep dependencies up to date.
  • First release published to Maven Central

Changed

  • Updated dependency versions

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JPT, version 2.0.5

[2.0.5] - 2020-07-30

Removed

  • Unnecessary maven settings.xml

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JPT, version 2.0.4

Other

This release contains no changes or additions to library functionality. It is functionally equivalent to v2.0.3.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - Java Permutation Tools (JPT), version 2.0.3

Fixes

  • Fixed bug in workflow for publishing to GitHub Package Registry. Doesn't affect library itself. Just rereleasing to test workflow. v2.0.3 is functionally identical to v2.0.1 and v2.0.2.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - v2.0.2

Java Permutation Tools (JPT), version 2.0.2

Fixes

  • Fixed bug in workflow for publishing to GitHub Package Registry. Doesn't affect library itself. Just rereleasing to test workflow. v2.0.2 is functionally identical to v2.0.1.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - v2.0.1

Java Permutation Tools (JPT), version 2.0.1

New

  • First version published to the GitHub Package Registry

Changes

  • Changed jar naming scheme
  • Renamed distribution directory fro lib to dist

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JavaPermutationTools (JPT): A Java library for computation on permutations and sequences

The JavaPermutationTools (JPT) library provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

New in this release: RandomVariates class with methods to generate random values from various distributions including the Cauchy distribution and binomial distribution. Copyable interface also new. Also now includes the permutation distance called Block Interchange Distance.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 5 years ago

JavaPermutationTools - JavaPermutationTools (JPT): A Java API for computation on permutations and sequences

The JavaPermutationTools (JPT) API provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

New in this release: SequenceSampler class for randomly sampling arrays and other sequences. New functionality added to the RandomIndexer class. A variety of refactorings to improve code readability and maintenance, as well as a variety of code optimizations.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 6 years ago

JavaPermutationTools - JavaPermutationTools (JPT): A Java API for computation on permutations and sequences

The JavaPermutationTools (JPT) API provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

New in this release: RandomIndexer class which can be used to efficiently generate random indexes and combination of indexes into arrays and permutations. Library has been optimized for more efficient random number generation (e.g., generating random permutations more efficiently).

Scientific Software - Peer-reviewed - Java
Published by cicirello over 6 years ago

JavaPermutationTools - JavaPermutationTools (JPT): A Java API for computation on permutations and sequences

The JavaPermutationTools (JPT) API provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

New in this release: New functionality in the Permutation class to make it easier in the future to add new operations on Permutations.

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 7 years ago

JavaPermutationTools - JavaPermutationTools (JPT): A Java API for computation on permutations and sequences

The JavaPermutationTools (JPT) API provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

New in this release: Added functionality to the Permutation class, and added normalization for permutation distance measures.

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 7 years ago

JavaPermutationTools - JavaPermutationTools (JPT): A Java API for computation on permutations and sequences

The JavaPermutationTools (JPT) API provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

New in this release: KendallTauSequenceDistance in the package org.cicirello.sequences.distance, as well as some new functionality in the permutation distance classes.

Scientific Software - Peer-reviewed - Java
Published by cicirello almost 7 years ago

JavaPermutationTools - JavaPermutationTools (JPT): A Java API for computation on permutations and sequences

The JavaPermutationTools (JPT) API provides Java classes that enable representing and generating permutations and sequences, as well as performing computation on permutations and sequences. It includes implementations of a variety of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types).

New in this release is a replication program for reproducing the data from the paper: Vincent A. Cicirello. Classification of Permutation Distance Metrics for Fitness Landscape Analysis. In Proceedings of the 11th International Conference on Bio-inspired Information and Communications Technologies. ICST, March 2019.

Scientific Software - Peer-reviewed - Java
Published by cicirello about 7 years ago

JavaPermutationTools - JavaPermutationTools: A Java API for Computation on Permutations and Sequences

Release includes all updates, revisions, etc produced during review of paper for Journal of Open Source Software, titled "JavaPermutationTools: A Java library of permutation distance metrics."

Scientific Software - Peer-reviewed - Java
Published by cicirello over 7 years ago

JavaPermutationTools - JavaPermutationTools: A Java Library of Permutation Distance Metrics

This release includes all updates, revisions, etc produced during the review process for the Journal of Open Source Software, paper titled 'JavaPermutationTools: A Java Library of Permutation Distance Metrics'.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 7 years ago

JavaPermutationTools - Release for JOSS paper

This release includes all updates, revisions, etc produced during the review process for the Journal of Open Source Software, paper titled 'JavaPermutationTools: A Java Library of Permutation Distance Metrics'.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 7 years ago

JavaPermutationTools - Sequence distance metrics now included

This release now includes distance metrics on sequences (i.e., Strings, arrays of primitives, arrays of objects). All prior functionality remains as is.

Scientific Software - Peer-reviewed - Java
Published by cicirello over 7 years ago

JavaPermutationTools - minor update

Release includes: More efficient implementations of ReinsertionDistance and KendallTauDistance. Specifically O(n lg n) implementations where the prior implementations were O(n^2).

Scientific Software - Peer-reviewed - Java
Published by cicirello over 7 years ago