Universe::AbstractUniverseIntensionConstraintFactory class

Contents

The UniverseIntensionConstraintFactory makes easier the construction of intension constraints from the solver's API, by providing a functional notation.

Derived classes

class UniverseIntensionConstraintFactory
class UniverseJavaIntensionConstraintFactory

Public functions

auto constant(long value) -> Universe::IUniverseIntensionConstraint* pure virtual
auto constant(const Universe::BigInteger& value) -> Universe::IUniverseIntensionConstraint* pure virtual
auto variable(std::string id) -> Universe::IUniverseIntensionConstraint* pure virtual
auto neg(Universe::IUniverseIntensionConstraint* constraint) -> Universe::IUniverseIntensionConstraint*
auto abs(Universe::IUniverseIntensionConstraint* constraint) -> Universe::IUniverseIntensionConstraint*
auto add(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto sub(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto mult(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto div(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto mod(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto sqr(Universe::IUniverseIntensionConstraint* constraint) -> Universe::IUniverseIntensionConstraint*
auto pow(Universe::IUniverseIntensionConstraint* constraint, Universe::IUniverseIntensionConstraint* exponent) -> Universe::IUniverseIntensionConstraint*
auto min(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto max(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto dist(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto lt(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto le(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto eq(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto neq(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto ge(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto gt(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto negation(Universe::IUniverseIntensionConstraint* constraint) -> Universe::IUniverseIntensionConstraint*
auto conjunction(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto disjunction(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto parity(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto equiv(std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint*
auto impl(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint*
auto in(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) -> Universe::IUniverseIntensionConstraint* pure virtual
auto in(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) -> Universe::IUniverseIntensionConstraint* pure virtual
auto notIn(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) -> Universe::IUniverseIntensionConstraint* pure virtual
auto notIn(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) -> Universe::IUniverseIntensionConstraint* pure virtual
auto ite(Universe::IUniverseIntensionConstraint* condition, Universe::IUniverseIntensionConstraint* ifTrue, Universe::IUniverseIntensionConstraint* ifFalse) -> Universe::IUniverseIntensionConstraint* pure virtual
auto unary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* constraint) -> Universe::IUniverseIntensionConstraint* pure virtual
auto binary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint* pure virtual
auto nary(Universe::UniverseOperator op, std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint* pure virtual

Function documentation

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::constant(long value) pure virtual

Parameters
value The value of the constant.
Returns The created intension constraint.

Wraps a constant value in its representation as an intension constraint.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::constant(const Universe::BigInteger& value) pure virtual

Parameters
value The value of the constant.
Returns The created intension constraint.

Wraps a constant value in its representation as an intension constraint.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::variable(std::string id) pure virtual

Parameters
id The identifier of the variable.
Returns The created intension constraint.

Wraps a variable in its representation as an intension constraint.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::neg(Universe::IUniverseIntensionConstraint* constraint)

Parameters
constraint The constraint on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the opposite operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::abs(Universe::IUniverseIntensionConstraint* constraint)

Parameters
constraint The constraint on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the absolute-value operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::add(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the addition operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::sub(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the subtraction operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::mult(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the multiplication operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::div(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the division operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::mod(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the modulo operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::sqr(Universe::IUniverseIntensionConstraint* constraint)

Parameters
constraint The constraint on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the square operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::pow(Universe::IUniverseIntensionConstraint* constraint, Universe::IUniverseIntensionConstraint* exponent)

Parameters
constraint The constraint on which the operator is applied.
exponent The exponent in the power operation
Returns The created intension constraint.

Creates an intension constraint applying the power operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::min(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the minimum operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::max(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the maximum operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::dist(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the distance operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::lt(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the less-than operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::le(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the less-or-equal operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::eq(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the equal operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::neq(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the different operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::ge(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the greater-or-equal operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::gt(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the greater-than operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::negation(Universe::IUniverseIntensionConstraint* constraint)

Parameters
constraint The constraint on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the not operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::conjunction(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the conjunction operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::disjunction(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the disjunction operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::parity(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the exclusive-disjunction operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::equiv(std::vector<Universe::IUniverseIntensionConstraint*> constraints)

Parameters
constraints The constraints on which to apply the operator.
Returns The created intension constraint.

Creates an intension constraint applying the equivalence operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::impl(Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right)

Parameters
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates an intension constraint applying the implication operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::in(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) pure virtual

Parameters
constraint The constraint that should be in the range.
min The minimum value in the range.
max The maximum value in the range.
Returns The created intension constraint.

Creates an intension constraint applying the in operator w.r.t. a range of values.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::in(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) pure virtual

Parameters
constraint The constraint that should be in the set.
set The constraints in the set.
Returns The created intension constraint.

Creates an intension constraint applying the in operator w.r.t. a set of values.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::notIn(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) pure virtual

Parameters
constraint The constraint that should not be in the range.
min The minimum value in the range.
max The maximum value in the range.
Returns The created intension constraint.

Creates an intension constraint applying the not-in operator w.r.t. a range of values.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::notIn(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) pure virtual

Parameters
constraint The constraint that should not be in the set.
set The constraints in the set.
Returns The created intension constraint.

Creates an intension constraint applying the not-in operator w.r.t. a set of values.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::ite(Universe::IUniverseIntensionConstraint* condition, Universe::IUniverseIntensionConstraint* ifTrue, Universe::IUniverseIntensionConstraint* ifFalse) pure virtual

Parameters
condition The condition of the constraint.
ifTrue The intension constraint corresponding to the case in which the condition evaluates to true.
ifFalse The intension constraint corresponding to the case in which the condition evaluates to false.
Returns The created intension constraint.

Creates an intension constraint applying the if-then-else operator.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::unary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* constraint) pure virtual

Parameters
op The operator applied by the constraint.
constraint The constraint on which the operator is applied.
Returns The created intension constraint.

Creates a new unary intension constraint.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::binary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) pure virtual

Parameters
op The operator applied by the constraint.
left The left constraint on which the operator is applied.
right The right constraint on which the operator is applied.
Returns The created intension constraint.

Creates a new binary intension constraint.

Universe::IUniverseIntensionConstraint* Universe::AbstractUniverseIntensionConstraintFactory::nary(Universe::UniverseOperator op, std::vector<Universe::IUniverseIntensionConstraint*> constraints) pure virtual

Parameters
op The operator applied by the constraint.
constraints The constraints on which the operator is applied.
Returns The created intension constraint.

Creates a new n-ary intension constraint.