@combinatorics/permutation Home Manual Reference Source

src/itranspositions.js

  1. import {_itranspositions} from './_itranspositions.js';
  2. import {used} from './used.js';
  3.  
  4. /**
  5. * Computes the sequence of transpositions that if applied to
  6. * <code>sigma</code> result in <code>invert(sigma)</code>. Uses
  7. * {@link _itranspositions} as the underlying implementation.
  8. *
  9. * @example
  10. * const invert = sigma => apply( sigma.length , itranspositions( sigma ) ) ;
  11. *
  12. * @param {Array} sigma Input permutation.
  13. * @return {IterableIterator} Iterator over the transpositions.
  14. */
  15. export const itranspositions = (sigma) =>
  16. _itranspositions(sigma, used(sigma.length));