From read.g:
MIP_GLLIMIT := infinity;
COVER_LIMIT := 100;
POWER_LIMIT := 1000;
# some flags for the algorithm
if not IsBound(USE_PARTI) then USE_PARTI := false; fi;
if not IsBound(USE_CHARS) then USE_CHARS := false; fi;
if not IsBound(USE_MSERS) then USE_MSERS := false; fi;
# checking modes for the package
if not IsBound(CHECK_AUT) then CHECK_AUT := false; fi;
if not IsBound(CHECK_STB) then CHECK_STB := false; fi;
if not IsBound(CHECK_CNF) then CHECK_CNF := false; fi;
if not IsBound(CHECK_NQA) then CHECK_NQA := false; fi;
# store info
if not IsBound(STORE) then STORE := true; fi;
if not IsBound(COVER) then COVER := true; fi;
if not IsBound(ALLOW) then ALLOW := true; fi;
These are problematic because it means the results of computations can vary based on some invisible global state. It is e.g. conceivable that a user sets a variable like STORE for unrelated reasons, not knowing that this will affect modisom.
Possible solutions (which may be mixed as desired):
- add a prefix identifying the package, such as
MODISOM_, so that we have MODISOM_ALLOW
- use the GAP package namespace feature; so e.g.
ALLOW@ etc. -> this is turned internally by GAP into ALLOW@Modisom
- some of them these settings could perhaps be turned into GAP options, so that the user can set them for specific function calls instead of globally
From
read.g:These are problematic because it means the results of computations can vary based on some invisible global state. It is e.g. conceivable that a user sets a variable like
STOREfor unrelated reasons, not knowing that this will affectmodisom.Possible solutions (which may be mixed as desired):
MODISOM_, so that we haveMODISOM_ALLOWALLOW@etc. -> this is turned internally by GAP intoALLOW@Modisom