\newpage
{\bf \Huge eqreduce}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Equality constraint reducer.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [H, x0] = eqreduce(constr)}
\end{quote}

{\bf Description}

\begin{quote}
Returns the nullspace {\tt H} of equality constraints and vector {\tt
x0} such that \\
{\tt x = H.'y + x0} \\
in terms of reduced-dimension vector {\tt y}.
\end{quote}

%-------------


\newpage
{\bf \Huge fixcase}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Case bug workaround.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt y = fixcase(x)}
\end{quote}

{\bf Description}

\begin{quote}
Workaround for bug in PC/Windows version that requires lowercase references
to class members.  Currently has no effect on other platforms.
\end{quote}

%--------------

\newpage
{\bf \Huge InitOpt}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Initialization script for OPT optimization toolbox.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt  InitOpt }
\end{quote}

{\bf Description}

\begin{quote}
{\tt InitOpt} must be called by all design programs using the
toolbox. {\tt InitOpt} sets up the global data structure {\tt OPT\_DATA}
which contains the following data: \\

\begin{tabular}{lcl}
{\tt   OPT\_DATA.pools}         &:& vector of optimization pool sizes \\
{\tt    OPT\_DATA.procs}          &:& array of base random processes \\
{\tt    OPT\_DATA.procs().basis}  &:& basis function \\
{\tt    OPT\_DATA.procs().offset} &:& basis offset \\
{\tt    OPT\_DATA.procs().Coeff}  &:& basis frequency coefficients \\
{\tt    OPT\_DATA.procs().coeff}  &:& basis time coefficients \\
{\tt    OPT\_DATA.ctprocs}        &:& same as procs, but for c.t. \\
{\tt    OPT\_DATA.casebug}        &:& 1 to workaround windows mixed-case
classnamebug
\end{tabular}
\end{quote}

{\bf See Also}

\begin{quote}
\begin{tabbing}
\hspace*{1.5in} \= \kill 
{\tt newOptSpace} \> Allocate new pool of optimization variables.
\end{tabbing}
\end{quote}

%-----------------

\newpage
{\bf \Huge mfactor}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Matrix factorization.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt S = mfactor(Q, eigtol) }
\end{quote}

{\bf Description}

\begin{quote}
Factors a symmetric, positive definite matrix into {\tt S'*S}.
\end{quote}

%-----------------

\newpage
{\bf \Huge minimize}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Interface to optimization engines.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [soln] = minimize(obj, constr, ov, method)  }
\end{quote}

{\bf Description}

\begin{quote}
{\tt minimize} uses an installed optimization engine to solve the
problem.

{\tt obj} is an \optvec which specifies the objective function.

{\tt constr} specifies the constraints. It is a cell array of \lconstr\:
and \sconstr\: type constraints.

{\tt ov} specifies the pool (optSpace) of variables to optimize.

{\tt method} specifies the optimization pacakage to be used, placed in
single quotes. Currently, {\tt eig}, {\tt geneig}, {\tt loqo}, {\tt
loqosocp}, {\tt loqosoclp}, {\tt boydsocp}, {\tt sdppack} and {\tt
sedumi} are supported.


\end{quote}

%-----------------

\newpage
{\bf \Huge newOptSpace}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Allocate variable pool.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt pool = newOptSpace  }
\end{quote}

{\bf Description}

\begin{quote}
{\tt pool = newOptSpace} allocates a new pool (optSpace) of optimization
variables and returns a pointer to it in {\tt pool}.
\end{quote}

{\bf See Also}

\begin{quote}
\begin{tabbing}
\hspace*{1.5in} \= \kill 
{\tt InitOpt} \> Initialization script for OPT optimization toolbox. \\
{\tt optSpace} \> Class of pools of optimization variables.
\end{tabbing}
\end{quote}

%-----------------

\newpage
{\bf \Huge optVar}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Create a single optimized variable.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt opt = optVar(ov) }
\end{quote}

{\bf Description}

\begin{quote}
Creates a single optimized variable in optSpace {\tt ov}. This is an
alias for {\tt opt = optVector(1,ov)}.
\end{quote}

{\bf See Also}

\begin{quote}
\begin{tabbing}
\hspace*{1.5in} \= \kill 
{\tt optVector} \> Optimization variable vector constructor.
\end{tabbing}
\end{quote}


%-----------------

\newpage
{\bf \Huge qm}
\leavevmode\leaders\hrule height 1mm \hfill
%\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Minimal Sum-of-Products form.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt fcn = qm(minterms, numvars)  }
\end{quote}

{\bf Description}

\begin{quote}
Reduces the Boolean function
  expressed by {\tt minterms} into the minimal sum-of-products form using the
  Quine-McCluskey method. {\tt fcn} is a cell array of essential prime
  implicant terms. Terms are expressed as arrays of indices -- so 1 
  indicates the least significant variable, and so on. A negative
  index indicates a complemented variable.
\end{quote}

{\bf Examples} 

\begin{quote}
 A result of {\tt \{[1 -4]; [-3]; [2 5]\} }
  indicates the minimized function is
     $F(a,b,c,d,e) = ad' + c' + be$
  for $a$ being the LSV, and so on.
\end{quote}

%-----------------


\newpage
{\bf \Huge wherein}
\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Search function.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt m = wherein(x, y)  }
\end{quote}

{\bf Description}

\begin{quote}
If {\tt x} and {\tt y} are sets of unique numbers, {\tt wherein(x, y)}
returns a vector of the locations in {\tt x} of the entries of {\tt y}.

{\tt wherein} returns {\tt NaN} if an entry of {\tt y} is not found in
{\tt x}.
\end{quote}
