computational-combinatorics/permutation

View on GitHub
src/_transpositions.js

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Computes the transposition decomposition of some permutation given its cycle
 * decomposition.
 *
 * @param {Iterable} cycles The cycle decomposition of some permutation.
 * @returns {IterableIterator} The transposition decomposition of the permutation
 * defined by the input cycles.
 */
export function* _transpositions(cycles) {
    for (const [s, cycle] of cycles) {
        while (cycle.length > 0) yield [s, cycle.pop()];
    }
}