# fbin: The fundamental bijection In permutations: Permutations of a Finite Set

## Description

Stanley defines the fundamental bijection on page 30.

Given w=(14)(2)(375)(6), Stanley writes it in standard form (specifically: each cycle is written with its largest element first; cycles are written in increasing order of their largest element). Thus we obtain (2)(41)(6)(753).

Then we obtain w* from w by writing it in standard form an erasing the parentheses (that is, viewing the numbers as a word); here w* = 2416753.

Given this, w may be recoverd by inserting a left parenthesis preceding every left-to-right maximum, and right parentheses where appropriate.

## Usage

 ```1 2 3 4 5``` ```standard(cyc,n=NULL) standard_cyclist(x,n=NULL) fbin_single(vec) fbin(W) fbin_inv(cyc) ```

## Arguments

 `vec` In function `fbin_single()`, an integer vector `W` In functions `fbin()` and `fbin_inv()`, an object of class permutation, coerced to word and cycle form respectively `cyc` In functions `fbin_single()` and `standard()`, permutation object coerced to cycle form `n` In function `standard()` and `standard_cyclist()`, size of the partition to assume, with default `NULL` meaning to use the largest element of any cycle `x` In function `standard_cyclist()`, a cyclist

## Details

The user-friendly functions are `fbin()` and `fbin_inv()` which perform Stanley's “fundamental bijection”. Function `fbin()` takes a word object and returns a cycle; function `fbin_inv()` takes a cycle and returns a word.

The other functions are low-level helper functions that are not really intended for the user (except possibly `standard()`, which puts a cycle object in standard order in list form).

## Author(s)

Robin K. S. Hankin

## References

R. P. Stanley 2011 Enumerative Combinatorics

`nicify_cyclist`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12``` ```# Stanley's example w: standard(cycle(list(list(c(1,4),c(3,7,5))))) w_hat <- c(2,4,1,6,7,5,3) fbin(w_hat) fbin_inv(fbin(w_hat)) x <- rperm(40,9) stopifnot(all(fbin(fbin_inv(x))==x)) stopifnot(all(fbin_inv(fbin(x))==x)) ```