This interface represents a region of a space as a partition.
Region are subsets of a space, they can be infinite (whole space, half space, infinite stripe ...) or finite (polygons in 2D, polyhedrons in 3D ...). Their main characteristic is to separate points that are considered to be inside the region from points considered to be outside of it. In between, there may be points on the boundary of the region.
This implementation is limited to regions for which the boundary is composed of several {@link SubHyperplane sub-hyperplanes}, including regions with no boundary at all: the whole space and the empty region. They are not necessarily finite and not necessarily path-connected. They can contain holes.
Regions can be combined using the traditional sets operations : union, intersection, difference and symetric difference (exclusive or) for the binary operations, complement for the unary operation.
Note that this interface is not intended to be implemented by Apache Commons Math users, it is only intended to be implemented within the library itself. New methods may be added even for minor versions, which breaks compatibility for external implementations.
@param < S> Type of the space.
@since 3.0