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

{\bf Purpose}

\begin{quote}
Optimized affine sequence constructor.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [seq] = optSequence(n, pool) } \\
{\tt [seq] = optSequence(vect) } \\
{\tt [seq] = optSequence(x) } \\
{\tt [seq] = optSequence } \\
\end{quote}

{\bf Description}

\begin{quote}
{\tt [seq] = optSequence(n, pool) } creates an optimized affine sequence
of length {\tt n}.

{\tt [seq] = optSequence(vect) } creates an optimized affine sequence
from {\tt optVector vec}.

{\tt [seq] = optSequence(x) } creates a constant sequence from vector
{\tt x}.

{\tt [seq] = optSequence } creates an empty sequence.
\end{quote}

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

\newpage
{\bf \Huge optSequence/char, display}
\leavevmode\leaders\hrule height 1mm \hfill
%\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
Output functions for class \optseq.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt c = char(seq)} \\
{\tt display(seq)}
\end{quote}

{\bf Descripition}

\begin{quote}
{\tt char} converts class \optseq\: to character for output.
{\tt display} is command window display of class \optseq.

Displays the kernel, offset into variable pool, pool number and time offset.
\end{quote}

%---------div

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

{\bf Purpose}

\begin{quote}
Conjugate flip.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [tseq] = ctranspose(seq)  }
\end{quote}

{\bf Description}

\begin{quote}
Flips {\tt seq} about the origin and conjugates it.

{\tt [tseq] = ctranspose(seq) } is called for the syntax {\tt seq'}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence Fourier transform.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt G = fourier(seq, nu)  }
\end{quote}

{\bf Description}

\begin{quote}
Returns Fourier transform of {\tt seq} at frequencies {\tt nu} as an \optvec.
\end{quote}

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

\newpage
{\bf \Huge optSequence/get\_noff}
\leavevmode\leaders\hrule height 1mm \hfill
%\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
{\tt noff} extraction function.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt noff = get\_noff(seq)  }
\end{quote}

{\bf Description}

\begin{quote}
Returns time offset of {\tt seq}. The true position of the first
sequence element is {\tt noff + 1}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence decimation.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [dseq] = ldivide(seq, M)  }
\end{quote}

{\bf Description}

\begin{quote}
Returns {\tt seq} decimated by {\tt M}. {\tt M} must be a scalar integer.

{\tt [dseq] = ldivide(seq, M)} is called for the syntax \verb| seq .\ M |. 
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence linear shift.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [sseq] = le(seq, nshift) }
\end{quote}

{\bf Description}

\begin{quote}
Shifts {\tt seq} left by {\tt nshift}. {\tt nshift} must be a scalar integer.

{\tt [sseq] = le(seq, nshift)} is called for the syntax {\tt seq <= nshift}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence subtraction.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [mseq] = minus(a, b)  }
\end{quote}

{\bf Description}

\begin{quote}
Subtracts {\tt optSequence b} from {\tt optSequence a}.

{\tt [mseq] = minus(a, b)} is called for the syntax {\tt a - b}.

\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence element-wise multiplication.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [mseq] = mtimes(a, b)  }
\end{quote}

{\bf Description}

\begin{quote}
Muliplies {\tt a} by {\tt b}. It is legal to multiply a constant
sequence by a constant sequence; and an optimized sequence by a scalar or a
constant sequence.

{\tt [mseq] = mtimes(a, b)} is called for the syntax {\tt a * b}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Return optimal sequence.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt optseq = optimal(opt, soln)  }
\end{quote}

{\bf Description}

\begin{quote}
Returns optimal constant sequence as given by {\tt soln}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence linear shift.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [sseq] = or(seq, nshift)  }
\end{quote}

{\bf Description}

\begin{quote}
Shifts the sequence right by (delays by) {\tt nshift}. {\tt nshift} must
be a scalar integer.

{\tt [sseq] = or(a, b)} is called for the syntax {\tt a | b}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence addition.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [pseq] = plus(a, b)  }
\end{quote}

{\bf Description}

\begin{quote}
Adds {\tt optSequence}s {\tt a} and {\tt b}.

{\tt [pseq] = plus(a, b)} is called for the syntax {\tt a + b}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence interpolation.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [dseq] = rdivide(seq, M)  }
\end{quote}

{\bf Description}

\begin{quote}
Interpolates {\tt seq} by {\tt M}. {\tt M} must be a scalar integer.

{\tt [dseq] = rdivide(seq, M)} is called for the syntax {\tt seq ./ M}.
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence subscripted reference.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt subs = seq(n)  }
{\tt subs = seq(n1, n2) }
\end{quote}

{\bf Description}

\begin{quote}
{\tt seq(n)} returns an optimized scalar at time index {\tt n}.

{\tt seq(n1, n2)} returns a subsequence from time index {\tt n1} to {\tt
n2}. 
\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence convolution.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [cseq] = times(a, b)  }
\end{quote}

{\bf Description}

\begin{quote}
Convolves {\tt optSequence}s {\tt a} and {\tt b}, one of which must not
depend on the optimization variables (constant sequence). 

{\tt [cseq] = times(a, b)} is called for the syntax {\tt a .* b}.

\end{quote}

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

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

{\bf Purpose}

\begin{quote}
Sequence flip.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [tseq] = transpose(seq)  }
\end{quote}

{\bf Description}

\begin{quote}
Flips {\tt seq} about the origin.

{\tt [tseq] = transpose(seq) } is called for the syntax {\tt seq.'}.
\end{quote}

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