Class LMI
-
template<typename NT, typename MT, typename VT>
class LMI This class handles a linear matrix inequality of the form [A_0 + \sum x_i A_i] A template specialization for dense Eigen matrices and vectors
- Template Parameters:
NT – Numeric Type
MT – Matrix Type
VT – Vector Type
Public Functions
-
inline LMI()
-
inline LMI(std::vector<MT> &matrices)
Creates A LMI object
- Parameters:
matrices – [in] The matrices A_0, A_i
-
inline unsigned int dimension() const
- Returns:
The dimension of vector x
-
inline unsigned int sizeOfMatrices() const
- Returns:
The size of the matrices
-
inline void evaluate(VT const &x, MT &ret, bool complete_mat = false) const
Evaluate A_0 + [A_0 + \sum x_i A_i ]
- Parameters:
x – [in] The input vector
ret – [out] The output matrix
-
inline void evaluateWithoutA0(const VT &x, MT &res, bool complete_mat = false) const
Compute [x_1*A_1 + … + x_n A_n]
- Parameters:
x – [in] Input vector
res – [out] Output matrix
-
inline void normalizedDeterminantGradient(VT r, VT const &e, VT &ret) const
Compute the gradient of the determinant of the LMI at p
- Parameters:
p – [in] Input parameter
Input – [in] vector: lmi(p)*e = 0, e != 0
ret – [out] The normalized gradient of the determinant of the LMI at p
-
inline MT *const getMatrix(const int i)
- Parameters:
i – An indicator to a matrix
- Returns:
Pointer to A_i
-
inline void print() const
Prints the matrices A0, …, An.