Polytope Polytope::operator&( const Polytope &P2 ) { assert( this->H.cols() == P2.H.cols() ); Eigen::MatrixXd H( this->H.rows() + P2.H.rows(), this->H.cols() ); Eigen::VectorXd K( this->H.rows() + P2.H.rows(), 1 ); H.topRows( this->H.rows() ) = this->H; K.topRows( this->H.rows() ) = this->K; H.bottomRows( P2.H.rows() ) = P2.H; K.bottomRows( P2.H.rows() ) = P2.K; return Polytope( H, K ); }