2024.01-01
10 January 2024
Mohamed Barakat
Email: mohamed.barakat@uni-siegen.de
Homepage: https://mohamed-barakat.github.io
Address:
Walter-Flex-Str. 3
57072 Siegen
Germany
Sebastian Gutsche
Email: gutsche@mathematik.uni-siegen.de
Homepage: https://sebasguts.github.io
Address:
Department Mathematik
Universität Siegen
Walter-Flex-Straße 3
57072 Siegen
Germany
Markus Lange-Hegermann
Email: markus.lange-hegermann@hs-owl.de
Homepage: https://www.th-owl.de/eecs/fachbereich/team/markus-lange-hegermann/
Address:
Markus Lange-Hegermann
Hochschule Ostwestfalen-Lippe
Liebigstraße 87
32657 Lemgo
Germany
© 2007-2015 by Mohamed Barakat and Markus Lange-Hegermann This package may be distributed under the terms and conditions of the GNU Public License Version 2 or (at your option) any later version.
Max Neunhöffer not only taught me the philosophy of object-oriented programming in GAP4, but also to what extent this philosophy is still unique among programming languages (--> Why GAP4?). He, Frank Lübeck, and Thomas Breuer patiently answered trillions of specific questions, even those I was too lazy to look up in the excellent reference manual. Without their continuous and tireless help and advice, not only this package but the as a whole homalg project would have remained on my todo list.
A lot of ideas that make up this package and the whole homalg project came out of intensive discussions with Daniel Robertz during our early collaboration, where we developed our philosophy of a meta package for homological algebra and implemented it in Maple. This Maple package homalg is now part of the GAP package RingsForHomalg.
In the fall of 2007 I began collaborating with Simon Görtzen to further pursue and extend these ideas preparing the transition to GAP4. With his help homalg became an extendable multi-package project.
Max Neunhöffer convinced me to use his wonderful IO package to start communicating with external computer algebra systems. This was crucial to remedy the yet missing support for important rings in GAP. Max provided the first piece of code to access the computer algebra system Singular. This was the starting point of the packages HomalgToCAS and IO_ForHomalg, which were further abstracted by Simon and myself enabling homalg to communicate with virtually any external (computer algebra) system.
Thomas Bächler wrote the package MapleForHomalg to directly access Maple via its C-interface. It offers an alternative to the package IO_ForHomalg, which requires Maple's terminal interface cmaple
.
The basic support for Sage was added by Simon, and the support for Singular was initiated by Markus Lange-Hegermann and continued by him and Simon, while Markus Kirschmer contributed the complete support for MAGMA. This formed the beginning of the RingsForHomalg package. Recently, Daniel added the support for Macaulay2.
My concerns about how to handle the garbage collection in the external computer algebra systems were evaporated with the idea of Thomas Breuer using the so-called weak pointers in GAP4 to keep track of all the external objects that became obsolete for homalg. This idea took shape in a discussion with him and Frank Lübeck and finally found its way into the package HomalgToCAS.
My gratitude to all with whom I worked together to develop extension packages and those who developed their own packages within the homalg project (--> Appendix E). Without their contributions the package homalg would have remained a core without a body:
Barbara Bremer
Anna Fabiańska
I would also like to thank Alban Quadrat for supporting the homalg project and for all the wonderful discussions we had. At several places in the code I was happy to add the comment: "I learned this from Alban".
My teacher Wilhelm Plesken remains an inexhaustible source of extremely broad and deep knowledge. Thank you for being such a magnificent person.
This manual was created using the GAPDoc package of Max Neunhöffer and Frank Lübeck.
Last but not least, thanks to Miriam, Josef, Jonas, and Irene for the endless love and support.
Mohamed Barakat
generated by GAPDoc2HTML