Function cp::EndAtEnd(firstActivity, secondActivity, delay)

# cp::EndAtEnd¶

The function cp::EndAtEnd(a,b,d) returns 1 if one of the activities $$a$$ and $$b$$ is absent, or if the end of activity $$a$$ plus a nonnegative time period $$d$$ is equal to the end of activity $$b$$. The function cp::EndAtEnd(a,b,d) is equivalent to

$\begin{split}\begin{array}{ll} a\texttt{.Present=0} & \vee \\ b\texttt{.Present=0} & \vee \\ a\texttt{.End} + d = b\texttt{.End} & \end{array}\end{split}$

This function is typically used in scheduling constraints to place a sequencing restriction on activities.

cp::EndAtEnd(
firstActivity,   ! (input) an expression
secondActivity,  ! (input) an expression
delay            ! (optional) an expression
)


## Arguments¶

firstActivity

An expression that results in an activity.

secondActivity

An expression that results in an activity.

delay

An optional expression that results in an integer number of time slots. This expression may involve variables. The default value of this expression is 0.

## Return Value¶

This function returns 1 if the above condition is satisfied, and 0 if it is not.