if not IsPosInt(n) or not IsPosInt(q) or not IsPPowerInt(q) then
Error("n and q must be positive integers and q must be a prime power"); fi;
if n = 1then
return true; fi;
if not IsBound(IRREDSOL_DATA.FP_INDEX[n]) then
IRREDSOL_DATA.FP_INDEX[n] := []; fi;
if not IsBound(IRREDSOL_DATA.FP_INDEX[n][q]) then
pathname := Concatenation("fp/gl_", String(n), "_",String(q),".idx");
Info(InfoIrredsol, 2, "Reading data file ", pathname);
if not ReadPackage("irredsol", pathname) then
return false; fi;
if not IsBound(IRREDSOL_DATA.FP_INDEX[n][q]) then
Error("Panic: reading data file didn't define required data"); fi;
MakeImmutable(IRREDSOL_DATA.FP_INDEX[n][q]);
if not IsPosInt(n) or not IsPosInt(q) or not IsPPowerInt(q) then
Error("n and q must be positive integers and q must be a prime power"); fi;
if not TryLoadAbsolutelyIrreducibleSolubleGroupFingerprintIndex(n, q) then
Error("Panic: missing fingerprint index file for GL(",n,", ", q, ")"); fi; end);
function(n, q, index) if not IsPosInt(n) or not IsPosInt(q) or not IsPPowerInt(q)
or not IsPosInt(index) then
Error("n, q, and index must be positive integers", ", and q must be a prime power"); fi;
return TryLoadAbsolutelyIrreducibleSolubleGroupFingerprintData(n, q, index); end);
if not IsPosInt(n) or not IsPosInt(q) or not IsPPowerInt(q) or not IsPosInt(index) then
Error("n and q must be positive integers, q must be a prime power, and pos must be a positive integer"); fi;
if n = 1then
return; # group is unique, up to conjugacy - no information stored fi;
if not IsBound(IRREDSOL_DATA.FP[n]) then
IRREDSOL_DATA.FP[n] := []; fi;
if not IsBound(IRREDSOL_DATA.FP[n][q]) then
IRREDSOL_DATA.FP[n][q] := []; fi;
if not IsBound(IRREDSOL_DATA.FP_LOADED[n]) then
IRREDSOL_DATA.FP_LOADED[n] := []; fi;
if not IsBound(IRREDSOL_DATA.FP_LOADED[n][q]) then
IRREDSOL_DATA.FP_LOADED[n][q] := []; fi;
if not IsBound(IRREDSOL_DATA.FP_LOADED[n][q][index]) then
Unbind(IRREDSOL_DATA.FP_LOADED[n][q][index]); # if anything fails during loading # we won't have inconsistencies
Info(InfoIrredsol, 2, "Reading fingerprint file ", pathname); if not ReadPackage("irredsol", pathname) then
return false; fi;
for i in [1..Length(IRREDSOL_DATA.FP_INDEX[n][q][2])] do if IRREDSOL_DATA.FP_INDEX[n][q][2][i] = index then
MakeImmutable(IRREDSOL_DATA.FP[n][q][i]); fi;
od;
IRREDSOL_DATA.FP_LOADED[n][q][index] := true;
if not IsPosInt(n) or not IsPosInt(q) or not IsPPowerInt(q) or not IsPosInt(index) then
Error("n and q must be positive integers, q must be a prime power, and pos must be a positive integer"); fi; if not TryLoadAbsolutelyIrreducibleSolubleGroupFingerprintData(n, q, index) then
Error("Panic: ", index, "-th fingerprint file for GL(",n,", ", q, ") is missing"); fi; end);
if not IsPosInt(n) or not IsPosInt(q) or not IsPPowerInt(q) then
Error("n and q must be positive integers, and q must be a prime power"); fi;
LoadAbsolutelyIrreducibleSolubleGroupFingerprintIndex(n, q); for i in Set(IRREDSOL_DATA.FP_INDEX[n][q][2]) do
LoadAbsolutelyIrreducibleSolubleGroupFingerprintData(n, q, i);
od; end);
data := arg[1];
i := 2; while i < Length(arg) do if not IsBound(data[arg[i]]) then
return false; fi;
data := data[arg[i]];
i := i + 1;
od; if IsBound(data[arg[i]]) then
Unbind(data[arg[i]]);
return true; else
return false; fi; end;
if Length(arg) = 0then
IRREDSOL_DATA.FP := [];
IRREDSOL_DATA.FP_INDEX := [];
IRREDSOL_DATA.FP_LOADED := []; elif IsPosInt(arg[1]) and Length(arg) = 1then if arg[1] > 1then
UnbindIfBound(IRREDSOL_DATA.FP, arg[1]);
UnbindIfBound(IRREDSOL_DATA.FP_INDEX, arg[1]);
UnbindIfBound(IRREDSOL_DATA.FP_LOADED, arg[1]); fi; elif Length(arg) = 2 and IsPosInt(arg[1]) and IsPPowerInt(arg[2]) and arg[2] <> 1then if arg[1] > 1then
UnbindIfBound(IRREDSOL_DATA.FP, arg[1], arg[2]);
UnbindIfBound(IRREDSOL_DATA.FP_INDEX, arg[1], arg[2]);
UnbindIfBound(IRREDSOL_DATA.FP_LOADED, arg[1], arg[2]); fi; else
Error("Usage: `UnloadAbsolutelyIrreducibleSolubleGroupFingerprints( [n [, q]] )'"); fi; end);
data := []; for n in [1..Length(IRREDSOL_DATA.FP)] do if IsBound(IRREDSOL_DATA.FP[n]) then
fields := []; for p in [1..Length(IRREDSOL_DATA.FP[n])] do if IsBound(IRREDSOL_DATA.FP[n][p]) then
Add(fields, p); fi;
od; if not IsEmpty(fields) then
Add(data, [n, fields]); fi; fi;
od;
return data; end);
¤ 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.0.1Bemerkung:
(vorverarbeitet am 2026-10-11)
¤
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 und die Messung sind noch experimentell.