File full_dimensional_polytope.hpp
Functions
-
template<typename NT = double, typename SpMT = Eigen::SparseMatrix<NT, Eigen::ColMajor>, typename MT = Eigen::Matrix<NT, Eigen::Dynamic, Eigen::Dynamic>, typename VT = Eigen::Matrix<NT, Eigen::Dynamic, 1>>
std::tuple<MT, VT, VT, MT> compute_full_dimensional_polytope(const SpMT &Aeq, const VT &beq, const MT &A, const VT &b) Compute the full dimensional polytope P’ = {x | A’x <= b’} from the polytope P = {x | Ax <= b & Aeq*x = beq}
- Template Parameters:
NT – Number type (default: double)
SpMT – Sparse matrix type (default: Eigen::SparseMatrix<NT, Eigen::ColMajor>)
MT – Dense matrix type (default: Eigen::Matrix<NT, Eigen::Dynamic, Eigen::Dynamic>)
VT – Vector type (default: Eigen::Matrix<NT, Eigen::Dynamic, 1>)
- Parameters:
Aeq – Sparse matrix of equality constraints (m x n)
beq – Right-hand side vector for equality constraints (m x 1)
A – Dense matrix of inequality constraints (p x n)
b – Right-hand side vector for inequality constraints (p x 1)
- Returns:
std::tuple<MT, VT, VT, MT> containing:
A_full: Transformed inequality matrix (p x (n-rank))
b_full: Transformed inequality vector (p x 1)
shift: Translation vector (n x 1)
N: Nullspace transformation matrix (n x (n-rank))