142 std::numeric_limits<double>::max(),
143 std::numeric_limits<double>::max(),
144 std::numeric_limits<double>::max(),
Every constraint has a strength that determines where it sits in the hierarchy; strong constraints ar...
Definition ConstraintStrength.hpp:91
friend bool operator<=(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:152
static const ConstraintStrength medium
Medium constraint strength.
Definition ConstraintStrength.hpp:127
static const ConstraintStrength required
Constraints with this strength must be satisfied.
Definition ConstraintStrength.hpp:121
friend bool operator>(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:155
static const ConstraintStrength weak
The default strength for stay constraints.
Definition ConstraintStrength.hpp:130
double mWeight
Definition ConstraintStrength.hpp:94
friend ConstraintStrength operator*(ConstraintStrength lhs, double w)
Definition ConstraintStrength.hpp:156
static const ConstraintStrength strong
The default strength for edit constraints.
Definition ConstraintStrength.hpp:124
double getWeight() const
Get the 3-tuple symbolic weight.
Definition ConstraintStrength.hpp:113
constexpr ConstraintStrength(const ConstraintSymbolicWeight &symbolicWeight, const double w)
Definition ConstraintStrength.hpp:97
friend bool operator<(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:153
friend bool operator==(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:150
const ConstraintSymbolicWeight & getSymbolicWeight() const
Get the 3-tuple symbolic weight.
Definition ConstraintStrength.hpp:110
friend bool operator>=(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:154
friend bool operator!=(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:151
constexpr ConstraintStrength(const double a, const double b, const double c, const double w=1.0)
Construct a strength from three weight factors.
Definition ConstraintStrength.hpp:104
bool isRequired() const
Check if this strength signals a required constraint.
Definition ConstraintStrength.hpp:107
double getAdjustedWeight() const
Gets the adjusted weight as a double.
Definition ConstraintStrength.hpp:116
ConstraintSymbolicWeight mSymbolicWeight
Definition ConstraintStrength.hpp:93
A 3-tuple weight for constraint strengths.
Definition ConstraintStrength.hpp:25
friend bool operator<=(const ConstraintSymbolicWeight &lhs, const ConstraintSymbolicWeight &rhs)
friend bool operator!=(const ConstraintSymbolicWeight &lhs, const ConstraintSymbolicWeight &rhs)
constexpr double asDouble() const
Definition ConstraintStrength.hpp:40
ConstraintSymbolicWeight & operator/=(double n)
friend bool operator>=(const ConstraintSymbolicWeight &lhs, const ConstraintSymbolicWeight &rhs)
Array< double, 3 > mValues
Definition ConstraintStrength.hpp:27
static const ConstraintSymbolicWeight zero
Definition ConstraintStrength.hpp:44
constexpr ConstraintSymbolicWeight(const double w1, const double w2, const double w3)
Definition ConstraintStrength.hpp:31
ConstraintSymbolicWeight & negate()
constexpr size_t levels() const
Definition ConstraintStrength.hpp:41
friend bool operator==(const ConstraintSymbolicWeight &lhs, const ConstraintSymbolicWeight &rhs)
constexpr ConstraintSymbolicWeight()
Definition ConstraintStrength.hpp:30
friend bool operator>(const ConstraintSymbolicWeight &lhs, const ConstraintSymbolicWeight &rhs)
friend bool operator<(const ConstraintSymbolicWeight &lhs, const ConstraintSymbolicWeight &rhs)
ConstraintSymbolicWeight & operator*=(double n)
ConstraintSymbolicWeight & operator+=(const ConstraintSymbolicWeight &n)
ConstraintSymbolicWeight & operator-=(const ConstraintSymbolicWeight &n)
Definition Constraint.hpp:22
Constraint operator==(const ConstraintExpression &first, const ConstraintExpression &second)
Definition Constraint.hpp:183
bool operator!=(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:151
Constraint operator<=(const ConstraintExpression &first, const ConstraintExpression &second)
Definition Constraint.hpp:187
bool operator<(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:153
std::ostream & operator<<(std::ostream &str, const ConstraintStrength &s)
ConstraintExpression operator+(const ConstraintExpression &first, const ConstraintExpression &second)
Definition Constraint.hpp:131
Constraint operator>=(const ConstraintExpression &first, const ConstraintExpression &second)
Definition Constraint.hpp:191
bool operator>(const ConstraintStrength &lhs, const ConstraintStrength &rhs)
Definition ConstraintStrength.hpp:155
ConstraintExpression::Term operator/(const ConstraintVariable &variable, const double denominator)
Definition Constraint.hpp:103
ConstraintExpression::Term operator*(const ConstraintVariable &variable, const double coefficient)
Definition Constraint.hpp:102
ConstraintExpression::Term operator-(const ConstraintVariable &variable)
Definition Constraint.hpp:104
std::array< T, N > Array
Array is a container that encapsulates fixed size arrays.
Definition Array.hpp:17
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25