= ZAK code analysis = To quote the Introduction of the ZAK software survey by Rainer Schulze-Pillot (linked below as PDF): {{{ In the 1990s Rudolf Scharlau and I had a joint project concerned with computations for and with integral quadratic (and later also hermitian) forms over Z and also over the rings of integers of (mainly quadratic) number fields. The project originated in Rudolf Scharlau’s group of Diplom and doctoral students, where it also got its name ZAK, I don’t really now why (from the German word Zahlkoerper (number field) perhaps?). It turned later into a project funded by Deutsche Forschungsgemeinschaft; in this time Alexander Schiemann worked for the project, coordinated the programming work and wrote several C++ programs. The programs developed in the project were the basis of the articles [19, 20, 18, 22, 5] and were used for Schiemann’s computation of tables of integral hermitian forms [23]. After Schiemann left academia we continued to use the programs for a while on our HP-UX workstations. When these went out of service it turned out to be difficult to adapt the programs to other environments; I will describe some of the problems later. All experiments I did now are under Linux (Suse 11.0) using gcc 4.3. The present new interest in such computations, in particular in the SAGE project, raises the question whether it is worthwhile (and possible) to revive these programs. }}} == Interesting code == === tn === * C code * compiles fine and is well tested * GPL V2+ * depends on GMP only * minor issues in code, i.e. "malloc.h" used, static linking broken on OSX * mabshoff will build an experimental spkg === hn === * C++ code * friend and template issues - forward declaration should fix that (patch exists) * depends on LiDiA '''and''' LEDA (depends on sorting for sortseq) * presumed to work correctly * ancient binary on Linux exists, uses old LEDA and LiDiA === isolist === * C++ code * depends on LiDiA '''or''' LEDA controllable via include_param.h - see end of schulzepillot_qfcomputing_zak.pdf === decomp === * valgrind it to check for {{{ *** glibc detected *** decomp: double free or corruption (fasttop): 0x08055458 *** }}} === herm_mass === * check compilation