GAP (数式処理システム)
GAP (ギャップ、Groups, Algorithms and Programming) は計算機で群を扱うために開発された計算機代数システムである。アーヘン工科大学の数学部D (Lehrstuhl D für Mathematik, LDFM) で開発が始まり、その後スコットランドのセント・アンドルーズ大学の数学情報科学部と共同で開発が行われた。2005年の夏に開発拠点はそれぞれ同等の4カ所 (英セント・アンドルーズ大学、独アーヘン工科大学、 独ブラウンシュヴァイク工科大学、米フォート・コリンズのコロラド州立大学) に増やされた。
GAP の配布パッケージには、そのソースの他に、多くの利用者から寄贈されたプログラム、データライブラリ、マニュアルが含まれており、GPL にしたがって自由に再配布することができる。GAP はどの Unix系 OS でも実行でき、また Windows や macOS でも利用できる。GAP の標準的な構成では約 300 MB である (すべてのパッケージをインストールする場合は 400 MB である)。GAP を実行するには、RAM は 128 MB あれば十分である。
利用者の寄贈によるパッケージにより多くの機能が提供されており、これは GAP の大きな特徴の一つであると言える。開発者の元に送られてきたパッケージは査読プロセスにより GAP システムの機能や品質向上に有用かどうかが判断される。パッケージの作成者が論文を投稿する場合と同じである。2006年8月現在、GAP の配布パッケージにはそういったパッケージが 58 含まれており、35 のパッケージが査読を経たものである。
GAP からSINGULAR を使うためのインターフェイスが用意されている。
例
gap> G:=SmallGroup(8,1); # Set G to be a group of order 8. <pc group of size 8 with 3 generators> gap> i:=IsomorphismPermGroup(G); # Find an isomorphism from G to a group of permutations <action isomorphism> gap> Image(i,G); # The image of G under I - these are the generators of im G. Group([ (1,5,3,7,2,6,4,8), (1,3,2,4)(5,7,6,8), (1,2)(3,4)(5,6)(7,8) ]) gap> Elements(Image(i,G)); # All the elements of im G. [ (), (1,2)(3,4)(5,6)(7,8), (1,3,2,4)(5,7,6,8), (1,4,2,3)(5,8,6,7), (1,5,3,7,2,6,4,8), (1,6,3,8,2,5,4,7), (1,7,4,5,2,8,3,6), (1,8,4,6,2,7,3,5) ]
関連項目
- Sage (数式処理システム) (GAP を利用している)
- 数式処理システムの一覧
参考文献
- David Joyner:「群論の味わい -置換群で解き明かすルービックキューブと15パズル-」,共立出版,ISBN:978-4320019416,(2010年12月10日).