20 using std::list<Sign>::list;
26 if(this->size() > other.size())
return false;
27 auto it_this = this->crbegin();
28 auto it_other = other.crbegin();
29 while(it_this != this->crend()) {
30 if(*it_this != *it_other)
return false;
39 auto it = this->rbegin();
40 for(
uint i = 0; i < count; i++) {
41 result.push_front(*it);
44 assert(result.size() == count);
49 assert(lhs.size() == rhs.size());
50 assert(lhs.back() == rhs.back());
51 if(lhs.size() == 1)
return EQUAL;
52 assert(lhs.size() >= 2);
53 auto it_lhs = lhs.rbegin();
54 auto it_rhs = rhs.rbegin();
56 while(it_lhs != lhs.rend() && it_rhs != rhs.rend()) {
57 if(*it_lhs != *it_rhs) {
59 assert(*it_lhs == *it_rhs);
75 os <<
"[" << rhs.size() <<
": ";
76 for(
const auto& sign : rhs) {
carl is the main namespace for the library.
@ NEGATIVE
Indicates that .
@ POSITIVE
Indicates that .
bool isSuffixOf(const SignCondition &other) const
bool isPrefixOf(const SignCondition &other)
friend std::ostream & operator<<(std::ostream &os, const SignCondition &rhs)
static ThomComparisonResult compare(const SignCondition &lhs, const SignCondition &rhs)
SignCondition trailingPart(uint count) const