Second Singular GAP developers meeting (Kaiserslautern)

Oleksandr Motsak edited this page Nov 30, 2012 · 19 revisions

The second Singular-GAP developers meeting, 14-18.11.2011, Kaiserslautern

Welcome to the second Singular-GAP developers meeting in Kaiserslautern.

Starting from Tuesday we will meet in room number 419, building 48.

Sponsored by:


SPP-1489: Algorithmic and experimental methods in algebra, geometry and number theory


  • Mohamed Barakat (University of Kaiserslautern) -- Customer #1
  • Reimer Behrends (University of St Andrews)
  • Christian Eder (University of Kaiserslautern)
  • Max Horn (Braunschweig University)
  • Alexander Konovalov (University of St Andrews)
  • Martin Lee (University of Kaiserslautern)
  • Frank Lübeck (RWTH Aachen University)
  • Oleksandr Motsak (University of Kaiserslautern)
  • Max Neunhöffer (University of St Andrews)
  • Hans Schönemann (University of Kaiserslautern)
  • Andreas Steenpaß (University of Kaiserslautern)


This is to describe the current state of affairs of the GAP package libsingular.

What works?

  • Compile libsingular and the GAP package, run GAP, load the package.
  • The two memory management schemes coexist peacefully within the same process.
  • Call the Singular interpreter from GAP giving it a string to evaluate. (Singular output is collected in a string).
  • Read variables in the Singular interpreter and return their values to GAP. (For the moment, integers, intvecs, intmats and strings are supported).
  • Define a singular polynomial ring from GAP, access its indeterminates. (The ring is represented by a GAP object which references the Singular object.)
  • Define monomials in that ring. (Polynomials are represented by GAP objects which reference the Singular object.)
  • Add and multiply polynomials, multiply polynomials with scalars.
  • Transform a singular polynomial to a string.

What does not yet work?

  • Handling of errors occurring in the Singular interpreter
  • Writing to Singular variables from GAP
  • Polynomial rings with monomial ordering (no fundamental problem visible, just not yet implemented)
  • Other Singular data types represented by GAP objects
  • More arithmetic operations for polynomials
  • There are not yet nice methods installed in GAP using + and * for polynomials.
  • Lots more...

Questions (to be discussed next week):

  • How to handle errors occurring in the Singular interpreter?
  • What Singular data types are to be represented in GAP, for example, do we need "number" or do we use GAP's numbers instead?
  • Is the "current ring" issue in Singular addressed properly?
  • Does the memory management actually work when stressed?
  • Are there possible memory leaks?
  • Do we have any performance issues?

Future directions:

  • Provide everything Mohamed needs for homalg using the integrated libsingular (update: as external rings -- works!).
  • Implement access to more of Singular's features.
  • Make sure that it is viable to implement higher level algorithms in the GAP language using libsingular objects.
  • Integration of the Singular objects in GAP's object zoo.

What to do this week?

  • Discuss the above questions and possibly others.
  • Discuss the future directions.
  • Solve technical problems.
  • Move on with the implementation.
  • Discuss libsingular with a view to the upcoming parallelized GAP (HPCGAP).

Program for the week:

  • Plan the future development
    • give an overview of what already works (Max N.)
    • discuss error handling in Singular (Max N. + Hans)
    • homalg's external wish list (short) (Mohamed) -> works!
    • homalg's internal wish list (long) (Mohamed)
    • which Singular objects make sense in GAP, all?
    • stress tests
    • integration of Singular objects
    • interpret Singular libraries in GAP (example: groebner)
  • Parallelization!!!
    • Reimer gave a wonderful talk. Thanks Reimer.


Further Github wikis

Singular: How to contribute

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.