Class EigenvaluesProblems
-
template<typename NT, typename MT = Eigen::Matrix<NT, Eigen::Dynamic, Eigen::Dynamic>, typename VT = Eigen::Matrix<NT, Eigen::Dynamic, 1>>
class EigenvaluesProblems Solver for various eigenvalue problems arising in convex optimization Provides methods for quadratic eigenvalue problems (QEP), generalized eigenvalue problems, and negative definiteness checks via eigenvalue analysis.
- Template Parameters:
NT – Numeric type for scalar values
MT – Matrix type (defaults to Eigen::Matrix with dynamic dimensions)
VT – Vector type (defaults to Eigen::Matrix column vector with dynamic size)
Public Functions
-
inline NT minPosQuadraticEigenvalue(const MT &A, const MT &B, const MT &C, MT&, MT&, VT &eigvec, bool = false, int = 0)
Find minimum positive eigenvalue for quadratic eigenvalue problem Solves (A + t*B + t²*C)v = 0 to find smallest positive t Used in convex optimization for barrier function step size computation
- Parameters:
A – [in] Constant coefficient matrix
B – [in] Linear coefficient matrix
C – [in] Quadratic coefficient matrix
X – [inout] Auxiliary matrix (unused, kept for API compatibility)
Y – [inout] Auxiliary matrix (unused, kept for API compatibility)
eigvec – [out] Eigenvector corresponding to minimum positive eigenvalue
updateOnly – [in] Unused flag (kept for API compatibility)
num_constraints – [in] Unused parameter (kept for API compatibility)
- Returns:
Minimum positive t satisfying the QEP, or infinity if none exists
Public Static Functions
-
static inline std::pair<NT, NT> symGeneralizedProblem(const MT &A, const MT &B)
Solve generalized symmetric eigenvalue problem B*v = λ*(-A)*v Finds both minimum positive and maximum negative eigenvalues simultaneously
- Parameters:
A – [in] Symmetric matrix (multiplied by -1 in problem formulation)
B – [in] Symmetric matrix
- Returns:
Pair (min_positive_eigenvalue, max_negative_eigenvalue)