/* write the generators <gendp> to file */ for (i = 1; i <= nmr_soluble; ++i)
write_GAP_matrix(
*GAP_input, "ANUPQglb.agAutos", auts[i], pcp->ccbeg - 1, 1, i);
#ifdef DEBUG1
printf("The relative orders are "); for (i = 1; i <= nmr_soluble; ++i)
printf("%d, ", pga->relative[i]);
printf("\n"); #endif
fprintf(*GAP_input, "relativeOrders := ["); if (nmr_soluble > 0) { for (i = 1; i < nmr_soluble; ++i)
fprintf(*GAP_input, "%d, ", pga->relative[i]);
fprintf(*GAP_input, "%d", pga->relative[nmr_soluble]);
}
fprintf(*GAP_input, "];\n");
for (i = nmr_soluble + 1; i <= pga->m; ++i)
write_GAP_matrix(*GAP_input, "ANUPQglb.glAutos",
auts[i],
pcp->ccbeg - 1,
1,
i - nmr_soluble);
}
/**************************************************************************** ** *F write_GAP_matrix ** write out a matrix in a GAP input form **
*/ void write_GAP_matrix(
FILE *GAP_input, char *gen, int **A, int size, int start, int nr)
{ int i, j;
fprintf(GAP_input, "%s[%d] := [\n", gen, nr); for (i = start; i < start + size; ++i) {
fprintf(GAP_input, "["); for (j = start; j < start + size - 1; ++j)
fprintf(GAP_input, "%d, ", A[i][j]); if (i != start + size - 1)
fprintf(GAP_input, "%d],\n", A[i][j]); else
fprintf(GAP_input, "%d]] * ANUPQglb.one;;\n", A[i][j]);
}
}
/**************************************************************************** ** *F insoluble_stab_gens ** calculate the stabiliser of the supplied representative using GAP **
*/ void insoluble_stab_gens(int rep, int orbit_length, struct pga_vars *pga, struct pcp_vars *pcp)
{
FILE *GAP_rep; char *path, *command; char c; int index; int *subset; int **S;
/* append the commands to compute the stabilizer */
GAP_rep = OpenFile("GAP_rep", "w+");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.