Assume that we want to add the following constraints to DDS: \begin{eqnarray} \label{QC-1} x^\top A_i^\top Q_i A_i x + b_i^\top x + d_i \leq 0, \ \ \ i=\{1,\ldots,\ell\}, \end{eqnarray} where each \(A_i\) is \(m_i\)-by-\(n\) with rank \(n\), and \(Q_i \in \mathbb S^{m_i}\). In general, this type of constraints may be non-convex and difficult to handle. Currently, DDS handles two cases:
To give the constraint as input to DDS as the \(k\)th block, we define \begin{eqnarray} \text{A\{k,1\}}=\left [ \begin{array} {c} b_1^\top \\ A_1 \\ \vdots \\ b_l^\top \\ A_\ell\end{array}\right], \ \ \ \text{b\{k,1\}}=\left [ \begin{array} {c} d_1 \\ 0 \\ \vdots \\ d_\ell \\ 0 \end{array}\right] \nonumber \\ \text{cons\{k,1\}='QC'} \ \ \text{cons\{k,2\}}=[m_1,\ldots,m_\ell], \nonumber \\ \text{cons\{k,3,i\}}=Q_i, \ \ i \in \{1,\ldots,\ell\}. \end{eqnarray} If cons{k,3} is not given as the input, DDS takes all \(Q_i\)'s to be identity matrices.