Package: multicool
Type: Package
Title: Permutations of Multisets in Cool-Lex Order
Version: 1.0.2
Authors@R: c(
    person("James", "Curran", email = "j.curran@auckland.ac.nz", role = c("aut", "cre")),
    person("Aaron", "Williams", role = "aut"),
    person("Jerome", "Kelleher", role = "aut"))
Description: A set of tools to permute multisets without loops or hash tables and to generate integer partitions. The permutation functions are based on C code from Aaron Williams. Cool-lex order is similar to colexicographical order. The algorithm is described in Williams, A. Loopless Generation of Multiset Permutations by Prefix Shifts. SODA 2009, Symposium on Discrete Algorithms, New York, United States. The permutation code is distributed without restrictions. Multinomial coefficients, Stirling numbers of the second kind and Bell numbers are computed exactly using the 'gmp' package. The package also generates the integer partitions of a positive, non-zero integer n. The C++ code for this is based on Python code from Jerome Kelleher, and the algorithm is described in Kelleher and O'Sullivan (2009) <doi:10.48550/arXiv.0909.2331>. The C++ code and Python code are distributed without conditions.
URL: https://github.com/jmcurran/multicool
BugReports: https://github.com/jmcurran/multicool/issues
Encoding: UTF-8
License: GPL-2
Depends: methods, Rcpp (>= 0.11.2)
Imports: gmp
LinkingTo: Rcpp
Config/roxygen2/version: 8.0.0
NeedsCompilation: yes
Packaged: 2026-10-20 20:54:01 UTC; james
Author: James Curran [aut, cre],
  Aaron Williams [aut],
  Jerome Kelleher [aut]
Maintainer: James Curran <j.curran@auckland.ac.nz>
Repository: CRAN
Date/Publication: 2026-10-21 13:40:02 UTC
