GAP
Z Wikipedii
GAP (Groups, Algorithms and Programming) jest programem typu CAS służącym do przeprowadzania obliczeń na obiektach algebraicznych (zwłaszcza z obliczeniowej teorii grup).
GAP jest również nazwą języka programowania używanego w systemie GAP (większość dostępnych w tym systemie funkcji napisanych jest w tym właśnie języku).
Możliwości GAP-a obejmują:
- obliczenia na liczbach całkowitych (dowolnej wielkości), wymiernych, p-adycznych, wielomianach, funkcjach wymiernych, elementach ciał skończonych, permutacjach i in.
- struktury danych takie jak listy (w tym na macierze, zbiory), struktury algebraiczne (podgrupy grupy permutacji, grupy macierzowe, grupy skończenie prezentowalne, grupy policykliczne, przestrzenie liniowe, moduły, ciała), grafy, automaty skończone i in.
- relacje i odwzorowania (w szczególności homomorfizmy struktur algebraicznych, działania grup, reprezentacje)
- obliczanie niezmienników takich jak: rząd grupy, jądro homomorfizmu, podgrupy Sylowa, charaktery i wiele innych.
- możliwe jest korzystanie z zewnętrznych programów takich jak KANT czy SINGULAR.
Struktura tego systemu jest następująca: jądro programu, napisane w języku C realizuje funkcje takie jak: zarządzanie pamięcią, implementacja języka GAP, czy podstawowe środowisko użytkownika; biblioteka funkcji napisana jest głównie w języku GAP; dodatkowe pakiety - mogą realizować różne zadania (np implementują struktury danych i algorytmy, umożliwiają korzystanie z innych programów; pakiet XGAP spełnia rolę GUI).
GAP powstał na Lehrstuhl D für Mathematik, RWTH w Akwizgranie w 1986 roku i był tam rozwijany do 1997, kiedy centrum koordynacji projektu zostało przeniesione do School of Mathematical and Computational Sciences na University of St. Andrews w Szkocji. Jest to wolne oprogramowanie dostępne na licencji GNU GPL. GAP działa w systemach Unix (w szczególności w systemie GNU/Linux), MacOS oraz Windows (jednak niektóre dodatkowe pakiety dostępne wraz z systemem działają jedynie w systemach Unix).
Zobacz także: http://www.gap-system.org