Central software project: Interaction, high-performance and support

Project II.1 of the Collaborative Research Centre 195 of the German science foundation (DFG)
Principal Investigators
Mohamed Barakat
Wolfram Decker
Claus Fieker
Michael Joswig
Frank Lübeck
Summary

The proposers of TRR 195 have an impressive track record in driving the advance of computer algebra at all levels. This includes the long term development of, or major contributions to, the world leading open source computer algebra systems GAP, polymake and Singular. These systems provide cutting edge functionality at the forefront of the areas they cover. All have become invaluable tools to many researchers as can be ascertained from the numerous publications citing them. The system ANTIC is much newer with the strong potential rapidly to develop into an essential tool for researchers and users of number theory. These four systems are the cornerstone systems upon which this proposal is based. While each of these cornerstone systems excels in its own area, many applications and theoretical investigations require the sophisticated interaction of these systems.

Thus the ambitious long-term goal S1 of this TRR 195 has been formulated with the view to serve the mathematical community best: Integrate all computer algebra systems, libraries and packages developed within the TRR 195 into a visionary next generation open source computer algebra system surpassing the combined mathematical capabilities of the underlying systems.

The envisaged system will allow users to construct new mathematical objects efficiently by combining existing building blocks from any of the cornerstones and will equip these objects with mathematical capabilities exceeding those of the individual systems in a transparent way.

Polymake.jl

An important part of this project is to connect each of the components to Julia. For polymake, this is done via the package Polymake.jl. In order to use Polymake.jl, one needs to have the most recent snapshot of polymake installed. Then proceed as follows:

  1. Export the location of the polymake-config script: export POLYMAKE_CONFIG=/path/to/polymake/bin/polymake-config
  2. Open Julia and add Polymake.jl. In Julia press "]", then
    add https://github.com/oscar-system/Polymake.jl
  3. Use polymake from Julia. For example:
    julia> using Polymake;
    polymake version 3.2
    Copyright (c) 1997-2018
    Ewgenij Gawrilow, Michael Joswig (TU Berlin)
    http://www.polymake.org

    This is free software licensed under GPL; see the source for copying conditions.
    There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


    julia> P = perlobj("Polytope", POINTS=[1 1 1; 0 0 1; 0 2 1])
    type: Polytope

    POINTS
    1 1 1
    0 0 1
    0 1 1/2


    julia> P.FACETS
    polymake: used package cdd
    cddlib
    Implementation of the double description method of Motzkin et al.
    Copyright by Komei Fukuda.
    http://www-oldurls.inf.ethz.ch/personal/fukudak/cdd_home/

    polymake: used package ppl
    The Parma Polyhedra Library (PPL): A C++ library for convex polyhedra
    and other numerical abstractions.
    http://www.cs.unipr.it/ppl/

    pm::Matrix
    -1 1 0
    -1 -1 2
    1 0 0


    julia>
Polymake.jl requires Julia at least >=1.0.0. At oscar.computeralgebra.de/example there are more examples available in the Julia language. In particular, there is an jupyter notebook by Michael Joswig on g-vectors.

OSCAR coding sprint at TU Berlin

From 2018-11-26 to 2018-11-30 there will be an OSCAR coding sprint at TU Berlin. Please have a look at the meeting page for further information.

Software