Skip to content

multicool

Permutations of Multisets in Cool-Lex Order

v1.0.1 · Feb 5, 2024 · GPL-2

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. The code for stable and efficient computation of multinomial coefficients comes from Dave Barber. The code can be download from <http://tamivox.org/dave/multinomial/index.html> and is distributed without conditions. 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 which can be found here <https://jeromekelleher.net/category/combinatorics.html>. The C++ code and Python code are distributed without conditions.

Downloads

34.3K

Last 30 days

630th

100.8K

Last 90 days

435.1K

Last year

Trend: +5.5% (30d vs prior 30d)

CRAN Check Status

2 NOTE
12 OK
Show all 14 flavors
Flavor Status
r-devel-linux-x86_64-debian-clang NOTE
r-devel-linux-x86_64-debian-gcc NOTE
r-devel-linux-x86_64-fedora-clang OK
r-devel-linux-x86_64-fedora-gcc OK
r-devel-macos-arm64 OK
r-devel-windows-x86_64 OK
r-oldrel-macos-arm64 OK
r-oldrel-macos-x86_64 OK
r-oldrel-windows-x86_64 OK
r-patched-linux-x86_64 OK
r-release-linux-x86_64 OK
r-release-macos-arm64 OK
r-release-macos-x86_64 OK
r-release-windows-x86_64 OK
Check details (2 non-OK)
NOTE r-devel-linux-x86_64-debian-clang

CRAN incoming feasibility

Maintainer: ‘James Curran <j.curran@auckland.ac.nz>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: c(person(given = "James",
                      family = "Curran",
                      role = c("aut", "cre"),
                      email = "j.curran@auckland.ac.nz"),
               person(given = "Aaron",
                      family = "Williams",
                      role = "aut"),
               person(given = "Jerome",
                      family = "Kelleher",
                      role = "aut"),
               person(given = "Dave",
                      family = "Barber",
                      role = "aut"))
as necessary.
NOTE r-devel-linux-x86_64-debian-gcc

CRAN incoming feasibility

Maintainer: ‘James Curran <j.curran@auckland.ac.nz>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: c(person(given = "James",
                      family = "Curran",
                      role = c("aut", "cre"),
                      email = "j.curran@auckland.ac.nz"),
               person(given = "Aaron",
                      family = "Williams",
                      role = "aut"),
               person(given = "Jerome",
                      family = "Kelleher",
                      role = "aut"),
               person(given = "Dave",
                      family = "Barber",
                      role = "aut"))
as necessary.

Check History

NOTE 12 OK · 2 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 10, 2026
NOTE r-devel-linux-x86_64-debian-clang

CRAN incoming feasibility

Maintainer: ‘James Curran <j.curran@auckland.ac.nz>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: c(person(given = "James",
                      family = "Curran",
                      role = c("aut", "cre"),
         
...[truncated]...

               person(given = "Jerome",
                      family = "Kelleher",
                      role = "aut"),
               person(given = "Dave",
                      family = "Barber",
                      role = "aut"))
as necessary.
NOTE r-devel-linux-x86_64-debian-gcc

CRAN incoming feasibility

Maintainer: ‘James Curran <j.curran@auckland.ac.nz>’

No Authors@R field in DESCRIPTION.
Please add one, modifying
  Authors@R: c(person(given = "James",
                      family = "Curran",
                      role = c("aut", "cre"),
         
...[truncated]...

               person(given = "Jerome",
                      family = "Kelleher",
                      role = "aut"),
               person(given = "Dave",
                      family = "Barber",
                      role = "aut"))
as necessary.

Reverse Dependencies (9)

Dependency Network

Dependencies Reverse dependencies Rcpp BMRMM Claddis DNAtools Pv3Rs SIDES alphabetr ks relSim splitSelect multicool

Version History

new 1.0.1 Mar 10, 2026
updated 1.0.1 ← 1.0.0 diff Feb 4, 2024
updated 1.0.0 ← 0.1-12 diff Dec 1, 2023
updated 0.1-12 ← 0.1-11 diff Jun 28, 2021
updated 0.1-11 ← 0.1-10 diff Dec 4, 2019
updated 0.1-10 ← 0.1-9 diff Nov 24, 2016
updated 0.1-9 ← 0.1-8 diff Oct 27, 2015
updated 0.1-8 ← 0.1-7 diff Oct 21, 2015
updated 0.1-7 ← 0.1-6 diff Aug 16, 2015
updated 0.1-6 ← 0.1-5 diff Apr 27, 2015
updated 0.1-5 ← 0.1-2 diff Feb 25, 2015
updated 0.1-2 ← 0.1-1 diff Jul 9, 2013
new 0.1-1 Nov 14, 2011