5
$\begingroup$

Is there any graphical interface in GAP? Something like RStudio for R or WxMaxima for Maxima. I'm using GAP under a Linux system. Thanks

$\endgroup$
2
  • $\begingroup$ I believe that if you use it from within Sage, the latter has a graphical interface through Firefox. $\endgroup$
    – Bernard
    Dec 5 '15 at 19:28
  • 1
    $\begingroup$ It would be nice to describe in the question which mathematical functionality the user may seek in such a GUI. It is clear for R and Maxima, but in GAP we don't build any plots... In my answer I've already covered the case of exploring conjugacy classes of subgroups of a group, but maybe you have some different use cases in mind? $\endgroup$ Dec 8 '15 at 1:14
4
$\begingroup$

I want to follow up on Alexander's answer. Gap.app, which is one of the Undeposited Implementations for GAP that Alexander mentions briefly, is back in active development, with a new release this week. It is a front-end and GAP distribution for macOS. It fully supports the xgap library, and also does some other useful things like provide easy save and load of sessions, command completion, etc. See

https://cocoagap.sourceforge.io/ .

(Disclosure: I am the author of this program.)

Here's a nice screenshot from Samuel Lelièvre:

Unfortunately, if you're on Linux, Gap.app doesn't currently help you so much. Gap.app uses Objective C, and there is reasonable potential for compiling under Gnustep or similar. I have an undergraduate looking at that possibility, and it is possible that he will make some progress.

By the way, xgap still largely works. It uses the Xathena widgets, so does look and feel very dated. There is a bug in the current release of GAP that affects xgap (and prevents most display), but you can work around it by typing GAPInfo.TermEncoding:="latin1"; as your first command in a session.

One more thing. Alexander attributes xgap to Max Neunhöffer. The project was actually originated by Frank Celler, and taken over by Max Neunhöffer when Frank left mathematics. Now Max Neunhöffer has also left mathematics, and xgap maintenance is handled by Max Horn.

$\endgroup$
3
$\begingroup$

There were several attempts, one started as Max Neunhöffer's GAP package XGAP which works only on Linux, others as external software (see at the bottom of Undeposited Implementations for GAP page). However, none of them is currently in the active development.

As @Bernard remarked above, one could use GAP via SageMath (careful about components and packages installed, that's not identical), and there is also a work in progress on a Jupyter kernel for GAP - when that will be ready, that would be the answer number one on this question.

Often the question is not really why one may be interested in a GUI for GAP, but which functionality could such a GUI add to GAP? One of the unique features of the XGAP package is its functionality to work with lattices of subgroups. Although GAP has DotFileLatticeSubgroups to export the lattice to GraphViz, with XGAP one could not only visualise them, but also explore interactively.

I would like to post here some screenshots (made on Ubuntu 14) to illustrate some of XGAP functionality. This is how the starting screen looks like:

Starting screen

After entering

GraphicSubgroupLattice( DihedralGroup(16) );

it opens new window. Diamonds correspond to normal subgroups, and conjugacy classes of subgroups correspond to circles grouped together. Right-click on a subgroup opens small pop-up window with its properties:

Lattice of subgroups

One could specify which subgroups to display and perform operations with one or several selected subgroups:

Menu for exploring subgroups

Also, one could control the layout of the lattice:

Menu for lattice layout

An interesting and useful project could be to reimplement this functionality using some more modern and cross-platform framework.

$\endgroup$
1
  • $\begingroup$ Great answer, thanks. $\endgroup$ Dec 9 '15 at 15:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.