You are on page 1of 66

Introduction to GAP

(Groups, Algorithms, Programming)

Henry Hutasoit, SSE –RWTH Aachen


Seminar Language in Scientific Computing
24.01.2013

24.01.2013 Henry Hutasoit 1


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 2


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 3


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 4


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 5


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 6


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 7


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 8


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 9


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 10


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 11


What is GAP?
GAP is:

24.01.2013 Henry Hutasoit 12


What is GAP?
GAP is:
• a system for computational discrete algebra
(Computational Group Theory)–that provides:

24.01.2013 Henry Hutasoit 13


What is GAP?
GAP is:
• a system for computational discrete algebra
(Computational Group Theory)–that provides:
– a language;

24.01.2013 Henry Hutasoit 14


What is GAP?
GAP is:
• a system for computational discrete algebra
(Computational Group Theory)–that provides:
– a language;
– a library;

24.01.2013 Henry Hutasoit 15


What is GAP?
GAP is:
• a system for computational discrete algebra
(Computational Group Theory)–that provides:
– a language;
– a library;
– a data library

24.01.2013 Henry Hutasoit 16


What is GAP?
GAP is:
• a system for computational discrete algebra
(Computational Group Theory)–that provides:
– a language;
– a library;
– a data library

24.01.2013 Henry Hutasoit 17


What is GAP?
GAP is:
• a system for computational discrete algebra
(Computational Group Theory)–that provides:
– a language;
– a library;
– a data library
• A symbolic computation/ computer algebra/ algebraic
computation tool

24.01.2013 Henry Hutasoit 18


What is GAP?
Capabilities:
• Forming lists, records, domains
• Handling objects and elements, Booleans, orderings,
mappings, and relations
• Computing integers, rational numbers, cyclotomic
numbers(Gaussian numbers), finite fields, p-adic
numbers, polynomials, rational functions, group
elements, permutation, matrices, abstract words
• etc

24.01.2013 Henry Hutasoit 19


Symbolic Mathematics/ Computing vs
Numerical Mathematics/ Computing
• Symbolic Computing – Definition:
Wikipedia: scientific area that refers to the study and development
of algorithms and software for manipulating mathematical
expressions and other mathematical objects

24.01.2013 Henry Hutasoit 20


Symbolic Mathematics/ Computing vs
Numerical Mathematics/ Computing
• Symbolic Computing – Definition:
Wikipedia: scientific area that refers to the study and development
of algorithms and software for manipulating mathematical
expressions and other mathematical objects
• Numerical Computing – Definition:
Wikipedia: the study of algorithms that use numerical
approximation for the problems of mathematical analysis

24.01.2013 Henry Hutasoit 21


Symbolic Mathematics/ Computing vs
Numerical Mathematics/ Computing
• Symbolic Computing – Definition:
Wikipedia: scientific area that refers to the study and development
of algorithms and software for manipulating mathematical
expressions and other mathematical objects
• Numerical Computing – Definition:
Wikipedia: the study of algorithms that use numerical
approximation for the problems of mathematical analysis
• What can be considered as of symbolic computing:
– symbolic mathematical operation (integration, summation,
solution of differential equation, ..)
– Polynomial factorisation
– etc
24.01.2013 Henry Hutasoit 22
Symbolic Mathematics/ Computing vs
Numerical Mathematics/ Computing
• Symbolic Computing – Definition:
Wikipedia: scientific area that refers to the study and development
of algorithms and software for manipulating mathematical
expressions and other mathematical objects
• Numerical Computing – Definition:
Wikipedia: the study of algorithms that use numerical
approximation for the problems of mathematical analysis
• What can be considered as of symbolic computing:
– symbolic mathematical operation (integration, summation, solution of
differential equation, ..)
– Polynomial factorisation
– etc
• Good for teaching mathematics!
24.01.2013 Henry Hutasoit 23
Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 24


Group theory

24.01.2013 Henry Hutasoit 25


Group theory
• Studies algebraic structures known as group

24.01.2013 Henry Hutasoit 26


Group theory
• Studies algebraic structures known as group
• Groups like: rings, fields, vector spaces – with their
operations and axioms

24.01.2013 Henry Hutasoit 27


Group theory
• Studies algebraic structures known as group
• Groups like: rings, fields, vector spaces – with their
operations and axioms
• More focused disciplines: Linear algebraic groups, Lie
groups

24.01.2013 Henry Hutasoit 28


Group theory
• Studies algebraic structures known as group
• Groups like: rings, fields, vector spaces – with their
operations and axioms
• More focused disciplines: Linear algebraic groups, Lie
groups
• Applications in:
– Chemistry;
– Physics;
– Cryptography, etc

24.01.2013 Henry Hutasoit 29


Group theory
• Studies algebraic structures known as group
• Groups like: rings, fields, vector spaces – with their
operations and axioms
• More focused disciplines: Linear algebraic groups, Lie
groups
• Applications in:
– Chemistry;
– Physics;
– Cryptography, etc

24.01.2013 Henry Hutasoit 30


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 31


History of GAP (1)
• 1986: developed first by Lehrstuhl D für Mathematik,
RWTH Aachen: Joachim Neubüser, Johannes Meier,
Alice Niemayer, Werner Nickel, Martin Schönert
• 1988: first publicly released version: GAP 2.4
• 1997: development in CIRCA, St Andrews, Scotland ,
UK
• 2008: awarded the ACM/SIGSAM Richard Dimick
Jenks Memorial Prize for Excellence in Software
Engineering applied to Computer Algebra

24.01.2013 Henry Hutasoit 32


History of GAP (2)
• 2012: Latest version GAP 4.5.7
• Originally supported by DFG (since 1992)
• Developed now by a group of researchers in:

24.01.2013 Henry Hutasoit 33


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 34


The GAP systems

24.01.2013 Henry Hutasoit 35


The GAP systems
• Language GAP: C language

24.01.2013 Henry Hutasoit 36


The GAP systems
• Language GAP: C language
• Packages: ca 100 packages, act as algorithms or methods or
libraries

24.01.2013 Henry Hutasoit 37


The GAP systems
• Language GAP: C language
• Packages: ca 100 packages, act as algorithms or methods or
libraries
• Data Library:

24.01.2013 Henry Hutasoit 38


The GAP systems
• Language GAP: C language
• Packages: ca 100 packages, act as algorithms or methods or
libraries
• Data Library
• Interactive Environment (GUI)

24.01.2013 Henry Hutasoit 39


The GAP systems
• Language GAP: C language
• Packages: ca 100 packages, act as algorithms or methods or
libraries
• Data Library
• Interactive Environment (GUI)
• Documentation

24.01.2013 Henry Hutasoit 40


The GAP systems
• Language GAP: C language
• Packages: ca 100 packages, act as algorithms or methods or
libraries
• Data Library:
• Interactive Environment (GUI)
• Documentation

• The kernel is written in C!

24.01.2013 Henry Hutasoit 41


GAP codes

libraries

Kernel – C codes
GMP

24.01.2013 Henry Hutasoit 42


Kernel – C codes

24.01.2013 Henry Hutasoit 43


Implemented in GAP
language

Kernel – C codes

24.01.2013 Henry Hutasoit 44


Implemented in GAP Interactive environment in
language developing and using GAP

Kernel – C codes

24.01.2013 Henry Hutasoit 45


Implemented in GAP Interactive environment in
language developing and using GAP

Kernel – C codes

Memory
management

24.01.2013 Henry Hutasoit 46


Implemented in GAP Interactive environment in
language developing and using GAP

Kernel – C codes

fast versions of time critical operations


for various data types Memory
management

24.01.2013 Henry Hutasoit 47


GAP codes

24.01.2013 Henry Hutasoit 48


GAP codes

• Pascal dialect
• using streams, lists, and records
• automatic memory management, garbage collection!

24.01.2013 Henry Hutasoit 49


GAP codes

• Pascal dialect
• using streams, lists, and records
• automatic memory management, garbage collection!

24.01.2013 Henry Hutasoit 50


GAP codes

• Pascal dialect
• using streams, lists, and records
• automatic memory management, garbage collection!

24.01.2013 Henry Hutasoit 51


GMP:
GNU Multiple Precision
Arithmetic Library

24.01.2013 Henry Hutasoit 52


GMP:
GNU Multiple Precision
Arithmetic Library

GMP

24.01.2013 Henry Hutasoit 53


GMP:
GNU Multiple Precision
Arithmetic Library

GMP

Floating Points
24.01.2013 Henry Hutasoit 54
GMP:
GNU Multiple Precision
Arithmetic Library

GMP

Floating Points
24.01.2013 Henry Hutasoit 55
GMP:
GNU Multiple Precision
Arithmetic Library

GMP

Floating Points
24.01.2013 Henry Hutasoit 56
GMP:
GNU Multiple Precision
Arithmetic Library
• free library

GMP

Floating Points
24.01.2013 Henry Hutasoit 57
GMP:
GNU Multiple Precision
Arithmetic Library
• free library
• basic interface is for C, but also supports
C#, Ocaml, Perl, PHP, Python

GMP

Floating Points
24.01.2013 Henry Hutasoit 58
GMP:
GNU Multiple Precision
Arithmetic Library
• free library
• basic interface is for C, but also supports
C#, Ocaml, Perl, PHP, Python

GMP

Floating Points
24.01.2013 Henry Hutasoit 59
libraries

• Support mathematical operations: basic algebra,


group theory, etc

24.01.2013 Henry Hutasoit 60


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 61


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 62


Bibliography
• http://www.gap-system.org/gap.html
overview, installation, documentation, downloads, …
• Ogilvie, J. F., „Teaching and doing Mathematics with Symbolic
Computation“, www.cecm.sfu.ca/CAG/papers/OgilMathAsia.pdf
• „Symbolic Computation (An Editorial)“, Journal of Symbolic
Computation, Volume 1, Number 1-6, 1985

24.01.2013 Henry Hutasoit 63


Outline
• What is GAP?
• Symbolic computation
• Group theory
• History
• The GAP System
• Demo & Functionality
• Bibliography
•Q&A

24.01.2013 Henry Hutasoit 64


Q&A

24.01.2013 Henry Hutasoit 65


Thanks to…
• Prof. Dr. Paolo Bientinessi and his team
for giving opportunity to present this seminar
• Danan Wicaksono, M.Sc
for introducing the importance of symbolic computing
• Dr. Frank Lübeck
for providing further information on GAP
• Prof. Dr. Klaus Lux
for providing further information on GAP

24.01.2013 Henry Hutasoit 66

You might also like