[ library(gfd) | Reference Manual | Alphabetic Index ]
# <ConsistencyModule:> scalar_product(++Coeffs,+Collection,+Rel,?Sum,?Bool)

Reflect into Bool the truth of the scalar product of the elements of Coeffs and Collection satisfying the relation sum(Coeffs*Collection) Rel Sum.
*Coeffs*
- Collection of N integers.
*Collection*
- Collection of N integers or (domain) variables.
*RelOp*
- One of the atom: #>, #>=, #<, #=<, #=, #\=
*P*
- (Domain) variable or integer (array notation accepted)
*Bool*
- (Domain) variable or the integer 0 or 1 (array notation accepted)

## Description

This is the reified form of scalar_product/4, which constrains the
scalar product of the elements in Coeffs and Collection to satisfy
the relation
sum(Coeffs*Collection) Rel P.

Rel can be one of #>, #>=, #<, #=<, #=, #\= (or equivalently,
>, >=, <, =<, =, \=).

Any input variables which are not already domain variable will be
turn into domain variables with default bounds.

ConsistencyModule is the optional module specification to give the
consistency level for the propagation for this constraint:
gfd_bc for bounds consistency

This constraint is implemented using Gecode's linear() constraint
(reified version).