SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
eliminate.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 
5 #include <carl-formula/formula/Formula.h>
6 #include <carl-arith/poly/umvpoly/MultivariatePolynomial.h>
7 
8 #include <eigen3/Eigen/Core>
9 #include <eigen3/Eigen/Dense>
10 #include <eigen3/Eigen/StdVector>
11 
12 #include "fmplex.h"
13 
14 namespace smtrat::fmplex {
15 
16 using Formula = carl::Formula<carl::MultivariatePolynomial<Rational>>;
17 using EigenMat = Eigen::Matrix<Rational, Eigen::Dynamic, Eigen::Dynamic>;
18 using EigenVec = Eigen::Matrix<Rational, Eigen::Dynamic, 1>;
19 
20 Formula eliminate_variables(const Formula& f, const std::vector<carl::Variable>& vars);
21 
22 std::pair<EigenMat, EigenVec> eliminate_cols(const EigenMat& constraints,
23  const EigenVec& constants,
24  const std::vector<std::size_t>& cols);
25 
26 void write_matrix_to_ine(const EigenMat& constraints, const EigenVec& constants,
27  const std::vector<std::size_t>& cols, const std::string& filename);
28 
29 }
Eigen::Matrix< Rational, Eigen::Dynamic, Eigen::Dynamic > EigenMat
Definition: eliminate.h:17
void write_matrix_to_ine(const EigenMat &constraints, const EigenVec &constants, const std::vector< std::size_t > &cols, const std::string &filename)
Definition: eliminate.cpp:169
std::pair< EigenMat, EigenVec > eliminate_cols(const EigenMat &constraints, const EigenVec &constants, const std::vector< std::size_t > &cols)
Definition: eliminate.cpp:125
Eigen::Matrix< Rational, Eigen::Dynamic, 1 > EigenVec
Definition: eliminate.h:18
Formula eliminate_variables(const Formula &f, const std::vector< carl::Variable > &vars)
Definition: eliminate.cpp:41
carl::Formula< carl::MultivariatePolynomial< Rational > > Formula
Definition: eliminate.h:16
std::vector< carl::Variable > vars(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
Definition: QEQuery.h:43