Polyhedral optimization is a tool used in compilers for optimizing loop nests. While the major compilers that use this implement polyhedral optimizations from scratch,1 there is a generally-applicable open source C library called the Integer Set Library (ISL) that implements the core algorithms used in polyhedral optimization.
This article gives an overview of a subset of ISL, mainly focusing on the representation of sets and relations and basic manipulations on them.