G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing
Banner Institutions GREYC CNRS ENSICAEN UNICAEN

A Full-Featured Open-Source Framework for Image Processing



Latest stable version: 4.0.4 (2026/08/19)

Reference

Reptorian's Combinatorics Library


Description

A library for permutation and combinatorial enumeration.

The library provides commands for generation, ranking (list2index),
and unranking (index2list) of many combinatorial structures.

Supported structures include permutations, combinations,
cartesian product, sum-constrained permutations,
incremental combination, and repeated distinct element (RDE)
variants of many of these structures.

RDE structures represent multisets where each element type
has a fixed number of occurrences.

The library is designed to enable deterministic traversal
and indexing of large combinatorial spaces inside G'MIC pipeline.

Enumeration Order and Indexing

All combinatorial structures in this library are:

Enumerated in lexicographic order (left-to-right comparison of elements)
Zero-based indexed (indices start at 0)

Terminology

Permutations
Ordered arrangements of elements where position matters.

Combinations
Selections of elements where order does not matter.

Cartesian Product
The set of all ordered items formed by combining elements
from multiple sets.

Sum-constrained Combinatorics
Combinatorics tools for non-negative integers where the values
are restricted by a maximum sum constraint.

Incremental Combinations
Combinations represented as non-decreasing integer sequences.

Repeated Distinct Elements (RDE)
Combinatorial structures formed from multisets where each
element type has a fixed number of allowed occurrences.

Commands

Permutations:

rep_permutations    rep_permutation_index2list     rep_permutation_list2index
 rep_npr_permutationsrep_npr_permutation_index2list rep_npr_permutation_list2index
 rep_r_permutations  rep_r_permutation_index2list   rep_r_permutation_list2index

Combinations:

rep_ncr_combinationsrep_ncr_combination_index2list rep_ncr_combination_list2index
 rep_r_combinations  rep_r_combination_index2list   rep_r_combination_list2index

Cartesian Product:

rep_cartesian_productrep_cartesian_product_index2listrep_cartesian_product_list2index

Sum-Constrained Combinatorics:

rep_sum_permutations     rep_sum_permutation_index2list       rep_sum_permutation_list2index
rep_total_sum_permutationsrep_total_sum_permutation_index2list rep_total_sum_permutation_list2index
rep_sum_combinations      rep_sum_combination_index2list       rep_sum_combination_list2index
rep_total_sum_combinationsrep_total_sum_combination_index2list rep_total_sum_combination_list2index

Repeated Distinct Elements (RDE):

rep_rde_permutations    rep_rde_permutation_index2list    rep_rde_permutation_list2index
 rep_rde_npr_permutationsrep_rde_npr_permutation_index2listrep_rde_npr_permutation_list2index
 rep_rde_combinations    rep_rde_combination_index2list    rep_rde_combination_list2index
 rep_rde_compsel_perm    rep_rde_compsel_perm_index2list   rep_rde_compsel_perm_list2index
 rep_rde_compsel_comb    rep_rde_compsel_comb_index2list   rep_rde_compsel_comb_list2index

Incremental Combinations:

rep_inc_combinationsrep_inc_combination_index2listrep_inc_combination_list2index
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing

G'MIC is an open-source software distributed under the CeCILL free software licenses (LGPL-like and/or
GPL-compatible). Copyrights (C) Since July 2008, David Tschumperlé - GREYC UMR CNRS 6072, Image Team.