\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Permutation\&  & random\index{Permutation!random}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Rearrange the permutation in random order.\end{minipage}
\end{minipage}
\vspace{0.2in}
  
 
 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
int  & rank\index{Permutation!rank}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Return the rank of the permutation, ie. the position
of the permutation in lexicographic order.  The ranks run from 0 to $n!-1$.
\end{minipage}
\end{minipage}
\vspace{0.2in}
 

 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
Permutation\&  & unrank\index{Permutation!unrank}(int m)
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Unrank the $m$th permutation, ie. change
the current permutation to the $m$th permutation in lexicographic order.\end{minipage}
\end{minipage}
\vspace{0.2in}
  
 
\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Permutation\&  & next\index{Permutation!next}()
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Change the permutation to its successor in lexicographic order.\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Permutation\&  & previous()\index{Permutation!previous()}
\end{tabular}\\
 

 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Change the permutation its predecessor in lexicographic order.\end{minipage}
\end{minipage}
\vspace{0.2in}


 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
Permutation\&  & first\index{Permutation!first}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Change the permutation to the first permutation
in lexicographic order, the identity permutation.\end{minipage}
\end{minipage}
\vspace{0.2in}


 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
Permutation\&  & last\index{Permutation!last}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Change the permutation to the last permutation
in lexicographic order, the reverse of the identity permutation.\end{minipage}
\end{minipage}
\vspace{0.2in}


 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
void  & display\index{Permutation!display}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Display the permutation in human-readable form.\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Bool operator==(Permutation\& p)
  \\
Bool operator$>$(Permutation\& p)
  \\
Bool operator$>$=(Permutation\& p)
  \\
Bool operator$<$(Permutation\& p)
  \\
Bool operator$<$=(Permutation\& p)
  \\
Bool operator!=(Permutation\& p)
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Compare two permutations according to lexicographic order.\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
friend istream\&  & operator$>$$>$\index{Permutation!operator$>$$>$}(istream\& s,Permutation p)
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Input p from input stream s.\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
friend ostream\&  & operator$<$$<$\index{Permutation!operator$<$$<$}(ostream\& s,Permutation p)
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Output p to output stream s.\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Permutation\& operator=(Permutation p)
 \\
Permutation\& copy(Permutation p)
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Creates a copy of permutation p.\end{minipage}
\end{minipage}
\vspace{0.2in}


 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
Type  & operator[] \index{Permutation!operator[] }(int i) 
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Return the value of the $i$th element of the permutation.
If the permutation was constructed from the element of the set,
an element is returned, otherwise it is an integer from 1 to $n$.
\end{minipage}
\end{minipage}
\vspace{0.2in}


 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
int  & size\index{Permutation!size}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Return size of the permutation\end{minipage}
\end{minipage}
\vspace{0.2in}


