Biblioteka zbiorów całkowitych
Deweloperzy | Sven Verdoolaege, INRIA i inni |
---|---|
Wersja stabilna | 0,25 / 3 lipca 2022
|
Dostępne w | C |
Typ | Oprogramowanie matematyczne |
Licencja | MIT |
Strona internetowa |
isl ( integer set library ) to przenośna biblioteka C do manipulowania zbiorami i relacjami punktów całkowitych ograniczonych liniowymi ograniczeniami .
Obsługiwane są następujące operacje:
- przecięcie , suma , różnica zestawów
- sprawdzenie pustki
- wypukły kadłub
- (liczba całkowita) kadłub afiniczny
- projekcja liczb całkowitych
- obliczanie minimum leksykograficznego przy użyciu parametrycznego programowania liczb całkowitych
- zlewanie się
- parametryczne wyliczanie wierzchołków
Obejmuje również solver ILP oparty na uogólnionej redukcji bazowej , domknięciach przechodnich na mapach (które mogą kodować nieskończone wykresy ), analizie zależności i ograniczeniach wielomianów stopniowych .
Wszystkie obliczenia są wykonywane w dokładnej arytmetyce liczb całkowitych przy użyciu GMP lub imath.
Wiele technik analizy programów opiera się na manipulacjach na zbiorach liczb całkowitych. Liczby całkowite zwykle reprezentują iteracje gniazda pętli lub elementów tablicy . isl wykorzystuje parametryczne programowanie całkowitoliczbowe w celu uzyskania jawnej reprezentacji w postaci dzielenia całkowitoliczbowego.
Jest używany jako wielościenna biblioteka zaplecza w ramach GCC Graphite oraz w ramach LLVM Polly do optymalizacji pętli .