SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
utils.h
Go to the documentation of this file.
1 /*
2  * File: utils.h
3  * Author: stefan
4  *
5  * Created on June 19, 2013, 4:06 PM
6  */
7 
8 #pragma once
9 
10 #include "../LRAModule/LRAModule.h"
11 #include <carl-arith/numbers/numbers.h>
13 
14 namespace smtrat
15 {
16  namespace icp
17  {
18  /**
19  * Obtains the non-linear monomials of the given polynomial.
20  * @param _expr The polynomial to obtain the non-linear monomials for.
21  * @return The non-linear monomials.
22  */
23  std::vector<Poly> getNonlinearMonomials( const Poly& _expr );
24 
25  /**
26  * Creates a new constraint from an existing interval
27  * @param _interval
28  * @return pair <lowerBoundConstraint*, upperBoundConstraint*>
29  */
30  std::pair<ConstraintT, ConstraintT> intervalToConstraint( const Poly& _lhs, const smtrat::DoubleInterval _interval );
31 
32  /**
33  * Checks mIntervals if it contains an empty interval.
34  * @return
35  */
37 
38 
39  const LRAModule<LRASettings1>::LRAVariable* getOriginalLraVar ( carl::Variable::Arg _var, const LRAModule<LRASettings1>& _lra );
40 
41  }
42 }
lra::Variable< LRABoundType, LRAEntryType > LRAVariable
A variable of the LRAModule, being either a original variable or a slack variable representing a line...
Definition: LRAModule.h:39
std::vector< Poly > getNonlinearMonomials(const Poly &_expr)
Obtains the non-linear monomials of the given polynomial.
Definition: utils.cpp:17
std::pair< ConstraintT, ConstraintT > intervalToConstraint(const Poly &_lhs, const smtrat::DoubleInterval _interval)
Creates a new constraint from an existing interval.
Definition: utils.cpp:37
const LRAModule< LRASettings1 >::LRAVariable * getOriginalLraVar(carl::Variable::Arg _var, const LRAModule< LRASettings1 > &_lra)
Definition: utils.cpp:92
bool intervalBoxContainsEmptyInterval(const EvalDoubleIntervalMap &_intervals)
Checks mIntervals if it contains an empty interval.
Definition: utils.cpp:82
Class to create the formulas for axioms.
carl::Interval< double > DoubleInterval
Definition: model.h:26
carl::MultivariatePolynomial< Rational > Poly
Definition: types.h:25
std::map< carl::Variable, DoubleInterval > EvalDoubleIntervalMap
Definition: model.h:29