GAP package Browse

Authors: Thomas Breuer and Frank Lübeck
Needs: GAP in version at least 4.12.0;
  a C-compiler to compile a kernel module;
  the ncurses development library;
  GAPDoc in version at least 1.6
Current version: 1.8.21 (released 01/03/2023)
Contact: Thomas.Breuer@Math.RWTH-Aachen.De, Frank.Luebeck@Math.RWTH-Aachen.De
Download: See below for archives in several formats.
History: This text file CHANGES describes the most important differences to former versions of the package.


The motivation for this package was to develop functions for an interactive display of two-dimensional arrays of data, for example character tables. They should be displayed with labeled rows and columns, the display should allow some markup for fonts or colors, it should be possible to search for entries, to sort rows or columns, to hide and unhide information, to bind commands to keys, and so on.

To achieve this our package now provides three levels of functionality, where in particular the first level may also be used for completely other types of applications:

A low level interface to ncurses

This may be interesting for all kinds of applications which want to display text with some markup and colors, maybe in several windows, using the available capabilities of a terminal.

A medium level interface to a generic function NCurses.BrowseGeneric

We introduce a new operation Browse which is meant as an interactive version of Display for GAP objects.

Then we provide a generic function for browsing two-dimensional arrays of data, handles labels for rows and columns, searching, sorting, binding keys to actions, ... This is for users who want to implement new methods for browsing two-dimensional data.

Applications of these interfaces

We provide some applications of the ncurses interface and of the function NCurses.BrowseGeneric. These may be interesting for end users, and also as examples for programmers of further applications. This includes a method for browsing character tables, several games, and an interface for demos.


Detailed installation instructions are contained in the package README file.

For a first impression you may try

Browse(CharacterTable("J4"), rec(powermap:="ATLAS")); # ? help, Q quit
PlaySudoku();;   # ? help, Q quit

Online Documentation

Here is the documentation of the Browse package in several output formats. If you have installed the package as described above you can also access all of these documents from the GAP online help.

Package Archives for Download

The archive of the Browse package is availabe in several formats:

Last modified: Wed, 01 Mar 2023