4 #ifdef SMTRAT_DEVOPTION_Statistics
13 std::size_t mPivotingSteps = 0;
14 std::size_t mCurrentPivotingSteps = 0;
15 std::size_t mMostPivotingStepsInACheck = 0;
16 std::size_t mChecksWithPivoting = 0;
17 std::size_t mTableauxSize = 0;
18 std::size_t mTableauEntries = 0;
19 std::size_t mRefinements = 0;
20 std::size_t mConflicts = 0;
21 std::size_t mAllConflictsSizes = 0;
22 std::size_t mDeductions = 0;
23 std::size_t mTheoryPropagations = 0;
24 std::size_t mChecks = 0;
25 std::size_t mAllChecksSizes = 0;
26 std::size_t mUnequalConstrainSplittings = 0;
31 addKeyValuePair(
"pivots", mPivotingSteps );
32 addKeyValuePair(
"max-pivots", mMostPivotingStepsInACheck );
33 addKeyValuePair(
"average-num-of_pivots", mChecksWithPivoting == 0 ? 0 : (
double)mPivotingSteps/(
double)mChecksWithPivoting );
34 addKeyValuePair(
"tableau-size", mTableauxSize );
35 addKeyValuePair(
"tableau-entries", mTableauEntries );
36 addKeyValuePair(
"tableau-coverage", mTableauxSize == 0 ? 0 : (
double)mTableauEntries/(
double)mTableauxSize );
37 addKeyValuePair(
"refinements", mRefinements );
38 addKeyValuePair(
"conflicts", mConflicts );
39 addKeyValuePair(
"average-conflict-size", mConflicts == 0 ? 0 : (
double)mAllConflictsSizes/(
double)mConflicts );
40 addKeyValuePair(
"lemmas", mDeductions );
41 addKeyValuePair(
"theory-propagations", mTheoryPropagations );
42 addKeyValuePair(
"checks", mChecks );
43 addKeyValuePair(
"checks-with-pivots", mChecksWithPivoting );
44 addKeyValuePair(
"average-check-size", mChecks == 0 ? 0 : (
double)mAllChecksSizes/(
double)mChecks );
45 addKeyValuePair(
"unequal-constraint-splittings", mUnequalConstrainSplittings );
51 ++mCurrentPivotingSteps;
54 void check(
const ModuleInput& _formula )
56 if( mCurrentPivotingSteps > 0 )
58 if( mCurrentPivotingSteps > mMostPivotingStepsInACheck )
59 mMostPivotingStepsInACheck = mCurrentPivotingSteps;
60 ++mChecksWithPivoting;
62 mCurrentPivotingSteps = 0;
64 mAllChecksSizes += _formula.size();
75 void addConflict(
const std::vector<FormulaSetT>& _infSubSets )
77 for(
auto iss = _infSubSets.begin(); iss != _infSubSets.end(); ++iss )
80 mAllConflictsSizes += iss->size();
89 void propagateTheory()
91 ++mTheoryPropagations;
99 void splitUnequalConstraint()
101 ++mUnequalConstrainSplittings;
104 void setTableauSize(
size_t _size )
106 mTableauxSize = _size;
109 void setNumberOfTableauxEntries(
size_t _num )
111 mTableauEntries = _num;
static void remove(V &ts, const T &t)
Class to create the formulas for axioms.
carl::Constraint< Poly > ConstraintT
carl::statistics::Statistics Statistics