ensmallen
ensmallen copied to clipboard
SDP should have a more general linear operator constraint
This is a port of mlpack/mlpack#401. There are some more details there. This is the original description from @stephentu:
Our SDP abstraction right now only supports sparse and dense matrices. This is sufficiently general, but for some certain classes of constraints, quite suboptimal.
As an example, suppose I want to have the constraint that the sum of all elements in the matrix is constant. While we can express this as Tr((11^T) * X) = b, this is quite inefficient to evaluate for something that could be expressed as X.sum().
Hence, it would be desirable to have a third type of constraint, "linearOperator", which is just a linear function which takes symmetric matrices to real numbers. The straightforward way to implement this would be a vector of std::function objects.
This issue has been automatically marked as stale because it has not had any recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions! :+1: