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

{\bf Purpose}

\begin{quote}
Second-order cone constraint constructor.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt [soc] = SOCConstr(relop, obj1, obj2) }
\end{quote}

{\bf Description}

\begin{quote}
{\tt SOCConstr} creates {\tt soc} as a second-order cone optimization
constraint. {\tt relop} is the relational operator of the constraint,
and can be {\tt '<'} or {\tt '=='} for inequality and equality
constraints, respectively. {\tt obj1} is the left side of the
constraint, and can be an {\tt optQuad} or an {\tt optQuadVector}. {\tt
obj2} is the right side of the constraint, and can be an {\tt optQuad},
an {\tt optQuadVector}, or an {\tt optVector}.

\end{quote}

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

\newpage
{\bf \Huge SOCConstr/get\_A, get\_b, get\_c, get\_d, get\_Mrank}
\leavevmode\leaders\hrule height 1mm \hfill
%\rule{2in}{1mm}
\vspace{0.25in}

{\bf Purpose}

\begin{quote}
{\tt A}, {\tt b}, {\tt c}, {\tt d} and {\tt Mrank} extraction functions.
\end{quote}

{\bf Syntax}

\begin{quote}
{\tt A = get\_A(soc) } \\
{\tt A = get\_A(soc, type)  }\\
{\tt A = get\_A(soc, n) } \\
{\tt b = get\_b(soc) } \\
{\tt b = get\_b(soc, type)  }\\
{\tt b = get\_b(soc, n) } \\
{\tt c = get\_c(soc) } \\
{\tt c = get\_c(soc, type)  }\\
{\tt c = get\_c(soc, n) } \\
{\tt d = get\_d(soc) } \\
{\tt d = get\_d(soc,n) } \\
{\tt Mrank = get\_Mrank(soc) }
\end{quote}

{\bf Description}

\begin{quote}
{\tt get\_A}, {\tt get\_b} and {\tt get\_c} return {\tt A}, {\tt b} and
{\tt c}, respectively. If they are called with only {\tt soc} or {\tt
(soc, 'cell')}, they are returned as cell arrays.  If called {\tt (soc,
'matrix')} they are returned concatenated as a matrix. If called {\tt
(soc, n)}, only the {\tt n}th element is returned.

{\tt get\_d} returns {\tt d}. When called {\tt get\_d(soc, n)} only the
{\tt n}th element of {\tt d} is returned.

{\tt get\_Mrank} returns {\tt Mrank}.


\end{quote}

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