OSCAR (Open Source Computer Algebra Resource) is a new project to build a visionary computer algebra system integrating GAP, Singular, polymake, and Antic by using the Julia programming language.
The GAP package JuliaInterface and the Julia package Gap.jl provide the low-level part of integrating GAP and Julia. They combine several features, including
Unlike interfaces, the integration aims providing compatibility at the lowest level, trying to make the wall separating the two systems as low as possible. To achieve this, several technical difficulties had to be tackled, of which some will be presented in the talk.
Together with the integration of Singular and polymake into Julia (also part of the OSCAR project), JuliaInterface and Gap.jl will be used to provide integration of GAP with Singular and polymake.
Because of the low penalty when switching between the GAP and the Julia layer, this integration enables one to write algorithms combining the computational power of all four systems.
In this regard, JuliaInterface can be used to replace incomplete interface from GAP to polymake and the outdated interface from GAP to Singular, using as few binding code as possible to transparently access all foreign functionality.
Furthermore, the highly efficient integration of Julia into GAP allows one to implement fast versions of algorithms for GAP in Julia instead of C.
This is joint work with Reimer Behrends, Thomas Breuer, William Hart, Max Horn, and Markus Pfeiffer.