<p>Cool. I don't think it will be that hard to get it into LRSDP. I'd punt on supporting the IP solver for now (just throw a runtime exception if a user sets these generalize constraints and calls the IP solver). I think the easiest way to do it is provide a <code>LinearConstraint</code> callback which supports two operations: 1) evaluation of <code>Tr(A_i * UU^T)</code>, which takes as input <code>U</code> and returns a double, and 2) evaluation of <code>(Tr(A_i * UU^T) - b_i) A_i U</code>, which takes as input a <code>U</code> and <code>b_i</code> and returns (or say does <code>+=</code> to an input) an n x r matrix. This is needed for computing gradients . </p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly or <a href="https://github.com/mlpack/mlpack/issues/578#issuecomment-197462026">view it on GitHub</a><img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFHpd7ASY4xzbnA0yqFaPWXvyyBvrks5puEcAgaJpZM4HyPPr.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/mlpack/mlpack/issues/578#issuecomment-197462026"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>