Elemental 0.81 documentation

Convex optimization

«  Tuning parameters   ::   Contents   ::   Control theory  »

Convex optimization

LogBarrier

Uses a careful calculation of the log of the determinant in order to return the log barrier of a Hermitian positive-definite matrix A, \(-\log(\mbox{det}(A))\).

typename Base<F>::type LogBarrier(UpperOrLower uplo, const Matrix<F>& A)
typename Base<F>::type LogBarrier(UpperOrLower uplo, const DistMatrix<F>& A)
typename Base<F>::type LogBarrier(UpperOrLower uplo, Matrix<F>& A, bool canOverwrite=false )
typename Base<F>::type LogBarrier(UpperOrLower uplo, DistMatrix<F>& A, bool canOverwrite=false )

LogDetDivergence

The log-det divergence of a pair of \(n \times n\) Hermitian positive-definite matrices \(A\) and \(B\) is

\[D_{ld}(A,B) = \mbox{tr}(A B^{-1}) -\log(\mbox{det}(A B^{-1})) - n,\]

which can be greatly simplified using the Cholesky factors of \(A\) and \(B\). In particular, if we set \(Z = L_B^{-1} L_A\), where \(A=L_A L_A^H\) and \(B=L_B L_B^H\) are Cholesky factorizations, then

\[D_{ld}(A,B) = \| Z \|_F^2 - 2 \log(\mbox{det}(Z)) - n.\]
typename Base<F>::type LogDetDivergence(UpperOrLower uplo, const Matrix<F>& A, const Matrix<F>& B)
typename Base<F>::type LogDetDivergence(UpperOrLower uplo, const DistMatrix<F>& A, const DistMatrix<F>& B)

Singular-value soft-thresholding

Overwrites \(A\) with \(U S_{\tau}(\Sigma) V^H\), where \(U \Sigma V^H\) is the singular-value decomposition of \(A\) upon input and \(S_{\tau}\) performs soft-thresholding with parameter \(\tau\). The return value is the rank of the soft-thresholded matrix.

int SingularValueSoftThreshold(Matrix<F>& A, typename Base<F>::type tau)
int SingularValueSoftThreshold(DistMatrix<F>& A, typename Base<F>::type tau)

Uses a thresholded cross-product SVD.

int SingularValueSoftThreshold(Matrix<F>& A, typename Base<F>::type tau, int numSteps)
int SingularValueSoftThreshold(DistMatrix<F>& A, typename Base<F>::type tau, int numSteps)

Same as above, but run the thresholded cross-product SVD on the \(R\) from the partial \(QR\) decomposition produced from numSteps iterations of (Businger/Golub) column-pivoted QR.

Soft-thresholding

Overwrites each entry of \(A\) with its soft-thresholded value.

void SoftThreshold(Matrix<F>& A, typename Base<F>::type tau)
void SoftThreshold(DistMatrix<F>& A, typename Base<F>::type tau)

«  Tuning parameters   ::   Contents   ::   Control theory  »