21 #ifndef _GRINGO_OUTPUT_STATEMENTS_HH
22 #define _GRINGO_OUTPUT_STATEMENTS_HH
28 namespace Gringo {
namespace Output {
61 using HeadVec = std::vector<std::reference_wrapper<PredicateDomain::element_type>>;
135 bool fact(
bool)
const;
156 using BoundsVec = std::vector<std::pair<Relation, Value>>;
176 using ElemSet = std::vector<std::pair<PredicateDomain::element_type *, ULitVec>>;
184 bool fact(
bool)
const;
195 static void printElem(std::ostream &
out, DisjunctionState::ElemSet::value_type
const &
x);
197 virtual void printPlain(std::ostream &out)
const;
242 #endif // _GRINGO_OUTPUT_STATEMENTS_HH
CondVec conds
Definition: statements.hh:118
std::vector< SAuxAtom > SAuxAtomVec
Definition: literals.hh:41
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:168
void accumulate(ValVec const &tuple, AggregateFunction fun, PredicateDomain::element_type *head, unsigned headNum, LitVec const &lits, Location const &loc)
Definition: statements.cc:354
SAuxAtom head
Definition: statements.hh:99
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:60
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:754
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:625
Bounds::Interval range(AggregateFunction fun) const
Definition: statements.cc:404
unsigned lower
Definition: statements.hh:101
Definition: statements.hh:225
virtual WeightRule * clone() const
Definition: statements.cc:318
virtual Rule * clone() const
Definition: statements.cc:132
Definition: locatable.hh:30
Rule()
Definition: statements.cc:58
bool fact(bool) const
Definition: statements.cc:411
virtual bool isIncomplete() const
Definition: statements.cc:706
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:298
DisjunctionState * repr
Definition: statements.hh:203
MinimizeList elems
Definition: statements.hh:218
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:417
virtual DisjunctionRule * clone() const
Definition: statements.cc:707
virtual bool isIncomplete() const
Definition: statements.cc:110
virtual ~LparseRule()
Definition: statements.cc:274
bool todo
Definition: statements.hh:149
PredicateDomain::element_type * head
Definition: statements.hh:112
Definition: statements.hh:46
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:563
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:724
virtual ~RuleRef()
Definition: statements.cc:185
bool fact
Definition: statements.hh:120
virtual ~HeadAggregateRule()
Definition: statements.cc:605
Definition: statement.hh:60
ElemSet elems
Definition: statements.hh:187
std::vector< Cond > CondVec
Definition: statements.hh:116
static element_type & ignore()
Definition: statements.cc:620
virtual bool isIncomplete() const
Definition: statements.cc:322
std::vector< std::pair< PredicateDomain::element_type *, ULitVec >> ElemSet
Definition: statements.hh:176
unsigned imported
Definition: statements.hh:119
ElemSet elems
Definition: statements.hh:139
Definition: statement.hh:47
static element_type & ignore()
Definition: statements.cc:412
virtual bool isIncomplete() const
Definition: statements.cc:766
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:294
virtual ~LparseMinimize()
Definition: statements.cc:768
HeadAggregateState()
Definition: statements.cc:333
Definition: lparseoutputter.hh:38
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:685
Definition: statements.hh:88
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:213
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:251
ULitWeightVec lits
Definition: statements.hh:235
BoundsVec bounds
Definition: statements.hh:166
typename element_map::value_type element_type
Definition: domain.hh:160
Definition: statements.hh:123
std::vector< ULit > ULitVec
Definition: literal.hh:55
LitVec body
Definition: statements.hh:55
Definition: statements.hh:32
ULitBoundVec body
Definition: statements.hh:100
bool choice
Definition: statements.hh:79
virtual LparseRule * clone() const
Definition: statements.cc:269
ULitVec body
Definition: statements.hh:43
std::vector< std::reference_wrapper< PredicateDomain::element_type >> HeadVec
Definition: statements.hh:61
bool fact(bool) const
Definition: statements.cc:619
virtual ~Minimize()
Definition: statements.cc:742
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:72
virtual HeadAggregateRule * clone() const
Definition: statements.cc:597
Cond(PredicateDomain::element_type *head, unsigned headNum, Output::ULitVec &&lits)
Definition: statements.cc:328
std::vector< std::pair< Relation, Value >> BoundsVec
Definition: statements.hh:156
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:138
std::vector< std::pair< ULit, unsigned >> ULitBoundVec
Definition: statements.hh:89
virtual Minimize * clone() const
Definition: statements.cc:741
unsigned generation() const
Definition: statements.cc:618
WeightRule(SAuxAtom head, unsigned lower, ULitBoundVec &&body)
Definition: statements.cc:279
PredicateDomain::element_type * head
Definition: statements.hh:42
static void printElem(std::ostream &out, DisjunctionState::ElemSet::value_type const &x)
Definition: statements.cc:688
void accumulate(PredicateDomain::element_type *head, LitVec const &lits)
Definition: statements.cc:612
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:761
std::unique_ptr< Literal > ULit
Definition: literal.hh:41
virtual bool isIncomplete() const
Definition: statements.cc:596
virtual Rule * clone() const
Definition: statements.cc:104
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:718
static void printElem(std::ostream &out, HeadAggregateState::ElemSet::value_type const &x)
Definition: statements.cc:566
Bounds bounds
Definition: statements.hh:138
HeadVec head
Definition: statements.hh:80
virtual ~Rule()
Definition: statements.cc:118
Value::POD valMax
Definition: statements.hh:146
ULitVec body
Definition: statements.hh:82
virtual LparseMinimize * clone() const
Definition: statements.cc:767
Definition: statements.hh:210
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:697
unsigned _generation
Definition: statements.hh:148
Value::POD valMin
Definition: statements.hh:142
Definition: statements.hh:107
virtual bool isIncomplete() const
Definition: statements.cc:273
virtual bool isIncomplete() const
Definition: statements.cc:177
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:737
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:750
std::vector< std::pair< FWValVec, ULitVec >> MinimizeList
Definition: statement.hh:42
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:120
LparseRule(ULitVec &&body)
Definition: statements.cc:190
bool defined() const
Definition: statements.cc:617
virtual ~DisjunctionRule()
Definition: statements.cc:713
Definition: statements.hh:108
unsigned generation() const
Definition: statements.cc:410
AggregateFunction fun
Definition: statements.hh:167
HeadAggregateState * repr
Definition: statements.hh:168
int x
Definition: utility.cc:65
bool defined() const
Definition: statements.cc:403
Definition: unique_list.hh:157
unsigned headNum
Definition: statements.hh:113
Definition: statements.hh:60
std::shared_ptr< AuxAtom > SAuxAtom
Definition: literals.hh:40
Definition: statements.hh:155
std::vector< std::reference_wrapper< Literal >> LitVec
Definition: literal.hh:54
std::vector< Value > ValVec
Definition: value.hh:41
ULitVec body
Definition: statements.hh:169
virtual void toLparse(LparseTranslator &x)
Definition: statements.cc:227
Output::ULitVec lits
Definition: statements.hh:114
int64_t intMin
Definition: statements.hh:141
DisjunctionState()
Definition: statements.cc:610
PredicateDomain::element_type * head
Definition: statements.hh:54
Value prio
Definition: statements.hh:234
std::unique_ptr< FunctionTerm > fun(char const *name, T &&...args)
Definition: term_helper.hh:67
std::vector< std::pair< ULit, unsigned >> ULitWeightVec
Definition: statements.hh:224
Definition: statements.hh:175
int64_t intMax
Definition: statements.hh:145
AggregateFunction
Definition: base.hh:54
virtual bool isIncomplete() const
Definition: statements.cc:740
Definition: statements.hh:194
bool operator==(Cond const &x) const
LparseMinimize(Value prio, ULitWeightVec &&lits)
Definition: statements.cc:747
virtual ~WeightRule()
Definition: statements.cc:323
std::pair< Value const, HeadAggregateState > element_type
Definition: statements.hh:126
SAuxAtomVec auxHead
Definition: statements.hh:81
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:582
LparseOutputter & out
Definition: output.cc:685
virtual void printLparse(LparseOutputter &out) const
Definition: statements.cc:95
std::pair< Value const, DisjunctionState > element_type
Definition: statements.hh:177
virtual void printPlain(std::ostream &out) const
Definition: statements.cc:280
unsigned _generation
Definition: statements.hh:188
ULitVec body
Definition: statements.hh:204