GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#include "ZZ.h"1#include "typedef.h"2#include "voronoi.h"3#include "symm.h"4#include "autgrp.h"5#include "bravais.h"6#include "base.h"7#include "idem.h"8#include "longtools.h"9#include "reduction.h"101112bravais_TYP **get_groups(bravais_TYP **ADGROUPS,13int ad_no,14int *number)15{16int i,17j,18k,19normal_no,20centr_no;2122bravais_TYP **GROUPS,23*G1,24*G2;2526matrix_TYP *tmp,27**centerings,28**normal;2930G1 = init_bravais(ADGROUPS[0]->dim);3132/* look for all the centerings and so on */33number[0] = 0;34for (i=0;i<ad_no;i++){35number[0] += ADGROUPS[i]->zentr_no;36}37GROUPS = (bravais_TYP **) calloc(2 * number[0] , sizeof(bravais_TYP *));3839k=0;40for (i=0;i<ad_no;i++){41centerings = ADGROUPS[i]->zentr;42centr_no = ADGROUPS[i]->zentr_no;43ADGROUPS[i]->zentr = NULL;44ADGROUPS[i]->zentr_no = 0;45normal = ADGROUPS[i]->normal;46ADGROUPS[i]->normal = NULL;47normal_no = ADGROUPS[i]->normal_no;48ADGROUPS[i]->normal_no = 0;49G1->gen = normal;50G1->gen_no = normal_no;51for (j=0;j<centr_no;j++){52if (centerings[j]){53tmp = mat_inv(centerings[j]);54if (j==0){55GROUPS[k] = konj_bravais(ADGROUPS[i],tmp);56GROUPS[k]->normal = normal;57GROUPS[k]->normal_no = normal_no;58GROUPS[k + number[0] ] = (bravais_TYP * ) 1;59}60else{61G2 = gittstab(G1,centerings[j]);62ADGROUPS[i]->normal = G2->gen;63ADGROUPS[i]->normal_no = G2->gen_no;64GROUPS[k] = konj_bravais(ADGROUPS[i],tmp);65long_rein_formspace(GROUPS[k]->form,GROUPS[k]->form_no,1);66ADGROUPS[i]->normal = NULL;67ADGROUPS[i]->normal_no = 0;68free_bravais(G2);69GROUPS[k + number[0] ] = (bravais_TYP * ) 0;70}71free_mat(tmp);72free_mat(centerings[j]);73}74k++;75}76if (centerings[0] == NULL){77/* case only used for z_class_inf */78ADGROUPS[0]->normal = normal;79ADGROUPS[0]->normal_no = normal_no;80}81free(centerings);82}8384free(G1);8586return GROUPS;87}888990