\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Subset\&  & random\index{Subset!random}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Construct a random subset.\end{minipage}
\end{minipage}
\vspace{0.2in}
  
 
 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
int  & rank\index{Subset!rank}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Return the rank of the subset, ie. the position
of the subset in lexicographic order.  The ranks run from 0 to $2 sup n-1$ for
subsets, and from 0 to $C(n,k)-1$ for k-subsets.
\end{minipage}
\end{minipage}
\vspace{0.2in}
 

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


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


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


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


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


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


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


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


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


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Set unions(Subset c)
\\
operator+(Subset c) 
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Create new subset which is the union of the two subsets.
\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Set intersection(Subset c)
\\
Set operator^(Subset c)
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Create new subset which is the intersection of the two subsets.
\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Setdifference(Subset c)
\\
Set operator-(Subset c)
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Returns a new subset which is the original minus the subset argument.\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Bool  & subsetQ\index{Subset!subsetQ}(Subset c)
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Returns TRUE if subset argument
is a subset of the calling argument.\end{minipage}
\end{minipage}
\vspace{0.2in}


\begin{minipage}[t]{8in}
\begin{tabular}{ll}
Bool  & properSubsetQ\index{Subset!properSubsetQ}(Subset c)
\end{tabular}\\


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Return TRUE if  subset argument is a proper subset of the subset argument.\end{minipage}
\end{minipage}
\vspace{0.2in}



\begin{minipage}[t]{8in}
\begin{tabular}{ll}
friend istream\&  & operator$>$$>$\index{Subset!operator$>$$>$}(istream\& s,Subset 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{Subset!operator$<$$<$}(ostream\& s,Subset 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}
Subset\& operator=(Subset p)
 \\
Subset\& copy(Subset p)
\end{tabular}\\


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


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


 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Return int value of the subset at the given index.
\end{minipage}
\end{minipage}
\vspace{0.2in}


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


 \begin{minipage}[t]{8in}
\begin{tabular}{ll}
int  & order\index{Subset!order}()
\end{tabular}\\
 
 \parbox[b]{2in} \ \ 
\begin{minipage}[t]{4in}Return maximum cardinality of the subset\end{minipage}
\end{minipage}
\vspace{0.2in}


