Section Function Synopsis
above gave an overview of the polymorphic functions of the icl. This is what
you will need to find the desired possibilities to combine icl functions and
objects most of the time. The functions and overloads that you intuitively
expect should be provided, so you won't need to refer to the documentation
very often.

If you are interested

in the specific design of the function overloads,

in complexity characteristics
for certain overloads

or if the compiler refuses to resolve
specific function application you want to use,

refer to this section that describes the polymorphic function families of the
icl in detail.

Many of the icl's functions are overloaded
for elements, segments, element and interval containers. But not all type
combinations are provided. Also the admissible type combinations are different
for different functions and operations. To concisely represent the overloads
that can be used we use synoptical tables that contain possible type combinations
for an operation. These are called overload
tables. As an example the overload tables for the inplace
intersection operator&=
are given:

For the binary T&operator&=(T&,constP&)
there are two different tables for the overloads of element and interval
containers. The first argument type T
is displayed as row headers of the tables. The second argument type P is displayed as column headers of the
tables. If a combination of T
and P is admissible the related
cell of the table is non empty. It displays the result type of the operation.
In this example the result type is always equal to the first argument.

The possible types that can be instantiated for T
and P are element, interval
and container types abbreviated by placeholders that are defined here
and can be summarized as