Skip to content

Second Singular GAP developers meeting (Kaiserslautern)

Olexandr Konovalov edited this page Jan 28, 2024 · 20 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:

DFG

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

Participants:

  • Mohamed Barakat (University of Kaiserslautern) -- Customer #1
  • Reimer Behrends (University of St Andrews)
  • Christian Eder (University of Kaiserslautern)
  • Max Horn (Braunschweig University)
  • Olexandr 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)

Development

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.

Sources

Further Github wikis

Singular: How to contribute