6#include <Eigen/SparseCore>
21template <
typename Scalar>
22bool is_equality_locally_infeasible(
23 const Eigen::SparseMatrix<Scalar>& A_e,
24 const Eigen::Vector<Scalar, Eigen::Dynamic>& c_e) {
31 return A_e.rows() > 0 && (A_e.transpose() * c_e).norm() < Scalar(1e-6) &&
32 c_e.norm() > Scalar(1e-2);
44template <
typename Scalar>
45bool is_inequality_locally_infeasible(
46 const Eigen::SparseMatrix<Scalar>& A_i,
47 const Eigen::Vector<Scalar, Eigen::Dynamic>& c_i) {
60 Eigen::Vector<Scalar, Eigen::Dynamic> c_i_plus = c_i.cwiseMin(Scalar(0));
61 if ((A_i.transpose() * c_i_plus).norm() < Scalar(1e-6) &&
62 c_i_plus.norm() > Scalar(1e-6)) {