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)

static inline NT findSymEigenvalue(const MT &M)

Check if symmetric matrix M is negative definite and return an estimate of the largest eigenvalue (most negative)

Parameters:

M[in] Symmetric matrix

Returns:

Estimated largest eigenvalue if M is negative definite, infinity otherwise