Universe::UniverseIntensionConstraintFactory class

Contents

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

Base classes

class AbstractUniverseIntensionConstraintFactory

Public functions

auto constant(long value) -> Universe::IUniverseIntensionConstraint* override
auto constant(const Universe::BigInteger& value) -> Universe::IUniverseIntensionConstraint* override
auto variable(std::string id) -> Universe::IUniverseIntensionConstraint* override
auto in(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) -> Universe::IUniverseIntensionConstraint* override
auto in(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) -> Universe::IUniverseIntensionConstraint* override
auto notIn(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) -> Universe::IUniverseIntensionConstraint* override
auto notIn(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) -> Universe::IUniverseIntensionConstraint* override
auto ite(Universe::IUniverseIntensionConstraint* condition, Universe::IUniverseIntensionConstraint* ifTrue, Universe::IUniverseIntensionConstraint* ifFalse) -> Universe::IUniverseIntensionConstraint* override
auto unary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* constraint) -> Universe::IUniverseIntensionConstraint* override
auto binary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) -> Universe::IUniverseIntensionConstraint* override
auto nary(Universe::UniverseOperator op, std::vector<Universe::IUniverseIntensionConstraint*> constraints) -> Universe::IUniverseIntensionConstraint* override

Function documentation

Universe::IUniverseIntensionConstraint* Universe::UniverseIntensionConstraintFactory::constant(long value) override

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::UniverseIntensionConstraintFactory::constant(const Universe::BigInteger& value) override

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::UniverseIntensionConstraintFactory::variable(std::string id) override

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::UniverseIntensionConstraintFactory::in(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) override

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::UniverseIntensionConstraintFactory::in(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) override

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::UniverseIntensionConstraintFactory::notIn(Universe::IUniverseIntensionConstraint* constraint, const Universe::BigInteger& min, const Universe::BigInteger& max) override

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::UniverseIntensionConstraintFactory::notIn(Universe::IUniverseIntensionConstraint* constraint, std::vector<Universe::IUniverseIntensionConstraint*> set) override

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::UniverseIntensionConstraintFactory::ite(Universe::IUniverseIntensionConstraint* condition, Universe::IUniverseIntensionConstraint* ifTrue, Universe::IUniverseIntensionConstraint* ifFalse) override

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::UniverseIntensionConstraintFactory::unary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* constraint) override

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::UniverseIntensionConstraintFactory::binary(Universe::UniverseOperator op, Universe::IUniverseIntensionConstraint* left, Universe::IUniverseIntensionConstraint* right) override

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::UniverseIntensionConstraintFactory::nary(Universe::UniverseOperator op, std::vector<Universe::IUniverseIntensionConstraint*> constraints) override

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.