/* called after MPI_Init() and after GAP system initialization */ void Init_MPIvars( void ) { UInt gvar; AssGVar( gvar = GVarName("MPI_TAG_UB"), INTOBJ_INT(MPI_TAG_UB) ); MakeReadOnlyGVar(gvar); AssGVar( gvar = GVarName("MPI_HOST"), INTOBJ_INT(MPI_HOST) ); MakeReadOnlyGVar(gvar); AssGVar( gvar = GVarName("MPI_IO"), INTOBJ_INT(MPI_IO) ); MakeReadOnlyGVar(gvar); AssGVar( gvar = GVarName("MPI_COMM_WORLD"), INTOBJ_INT(MPI_COMM_WORLD) ); MakeReadOnlyGVar(gvar); AssGVar( gvar = GVarName("MPI_ANY_SOURCE"), INTOBJ_INT(MPI_ANY_SOURCE) ); MakeReadOnlyGVar(gvar); AssGVar( gvar = GVarName("MPI_ANY_TAG"), INTOBJ_INT(MPI_ANY_TAG) ); MakeReadOnlyGVar(gvar); #ifdef USE_MPINU AssGVar( gvar = GVarName("MPI_USE_MPINU"), True ); #ifdef MPINU_V2 AssGVar( gvar = GVarName("MPI_USE_MPINU_V2"), True ); #else AssGVar( gvar = GVarName("MPI_USE_MPINU_V2"), False ); #endif #else AssGVar( gvar = GVarName("MPI_USE_MPINU"), False ); #endif MakeReadOnlyGVar(gvar); }
/**************************************************************************** ** *F InitLibrary( <module> ) . . . . . . . initialise library data structures */ static Int InitLibrary ( StructInitInfo * module ) { ExportAsConstantGVar(PC_NUMBER_OF_GENERATORS); ExportAsConstantGVar(PC_GENERATORS); ExportAsConstantGVar(PC_INVERSES); ExportAsConstantGVar(PC_COMMUTE); ExportAsConstantGVar(PC_POWERS); ExportAsConstantGVar(PC_INVERSEPOWERS); ExportAsConstantGVar(PC_EXPONENTS); ExportAsConstantGVar(PC_CONJUGATES); ExportAsConstantGVar(PC_INVERSECONJUGATES); ExportAsConstantGVar(PC_CONJUGATESINVERSE); ExportAsConstantGVar(PC_INVERSECONJUGATESINVERSE); ExportAsConstantGVar(PC_DEEP_THOUGHT_POLS); ExportAsConstantGVar(PC_DEEP_THOUGHT_BOUND); ExportAsConstantGVar(PC_ORDERS); ExportAsConstantGVar(PC_WORD_STACK); ExportAsConstantGVar(PC_STACK_SIZE); ExportAsConstantGVar(PC_WORD_EXPONENT_STACK); ExportAsConstantGVar(PC_SYLLABLE_STACK); ExportAsConstantGVar(PC_EXPONENT_STACK); ExportAsConstantGVar(PC_STACK_POINTER); ExportAsConstantGVar(PC_DEFAULT_TYPE); // signal to polycyclic that 'CollectPolycyclic' does not use resp. // require stacks inside the collector objects AssConstantGVar(GVarName("NO_STACKS_INSIDE_COLLECTORS"), True); /* init filters and functions */ InitGVarFuncsFromTable( GVarFuncs ); /* return success */ return 0; }
/** Function called by GAP after a workspace restore. This is also called by us in InitLibrary(); **/ static Int PostRestore(StructInitInfo* module) { Int i; Int gvar; Obj tmp; gvar = GVarName("LinBox"); tmp = (Obj)VAL_GVAR(gvar); if(!tmp) { tmp = (Obj)NEW_PREC(0); } /* Write the names of my functions into th LinBox record */ for(i = 0; GVarFuncs[i].name != 0; i++) { AssPRec( tmp, RNamName((Char*)GVarFuncs[i].name), NewFunctionC( GVarFuncs[i].name, GVarFuncs[i].nargs, GVarFuncs[i].args, GVarFuncs[i].handler) ); } MakeReadWriteGVar(gvar); AssGVar(gvar, tmp); MakeReadOnlyGVar(gvar); return 0; }
Obj GAP_getGlobal(const char* name) { UInt i = GVarName(name); Obj o = VAL_GVAR(i); if(!o) throw GAPException("Missing global : " + std::string(name)); return o; }
/* 'PostRestore' restore gvars, rnams, functions */ static Int PostRestore ( StructInitInfo * module ) { /* global variables used in handlers */ G_Print = GVarName( "Print" ); G_runtest = GVarName( "runtest" ); G_Group = GVarName( "Group" ); /* record names used in handlers */ /* information for the functions */ NameFunc[1] = 0; NameFunc[2] = 0; /* return success */ return 0; }
// Combines GVarName and ValGVar. For a given string, it returns the value // of the gvar with name <name>, or NULL if the global variable is not // defined. Obj GAP_ValueGlobalVariable(const char * name) { UInt gvar = GVarName(name); // TODO: GVarName should never return 0? if (gvar != 0) { return ValGVar(gvar); } else { return NULL; } }
/* 'PostRestore' restore gvars, rnams, functions */ static Int PostRestore ( StructInitInfo * module ) { /* global variables used in handlers */ G_Print = GVarName( "Print" ); G_f1 = GVarName( "f1" ); G_f2 = GVarName( "f2" ); G_f3 = GVarName( "f3" ); G_f4 = GVarName( "f4" ); G_runtest = GVarName( "runtest" ); /* record names used in handlers */ /* information for the functions */ NameFunc[1] = 0; NameFunc[2] = 0; NameFunc[3] = 0; NameFunc[4] = 0; NameFunc[5] = 0; NameFunc[6] = 0; /* return success */ return 0; }
/* 'PostRestore' restore gvars, rnams, functions */ static Int PostRestore ( StructInitInfo * module ) { /* global variables used in handlers */ G_CALL__WITH__CATCH = GVarName( "CALL_WITH_CATCH" ); G_range2 = GVarName( "range2" ); G_range3 = GVarName( "range3" ); G_runtest = GVarName( "runtest" ); G_BreakOnError = GVarName( "BreakOnError" ); G_Display = GVarName( "Display" ); /* record names used in handlers */ /* information for the functions */ NameFunc[1] = 0; NameFunc[2] = 0; NameFunc[3] = 0; NameFunc[4] = 0; /* return success */ return 0; }
/* 'PostRestore' restore gvars, rnams, functions */ static Int PostRestore ( StructInitInfo * module ) { /* global variables used in handlers */ G_IS__FUNCTION = GVarName( "IS_FUNCTION" ); G_ADD__LIST = GVarName( "ADD_LIST" ); G_Error = GVarName( "Error" ); G_IS__IDENTICAL__OBJ = GVarName( "IS_IDENTICAL_OBJ" ); G_AND__FLAGS = GVarName( "AND_FLAGS" ); G_HASH__FLAGS = GVarName( "HASH_FLAGS" ); G_WITH__HIDDEN__IMPS__FLAGS = GVarName( "WITH_HIDDEN_IMPS_FLAGS" ); G_IS__SUBSET__FLAGS = GVarName( "IS_SUBSET_FLAGS" ); G_TRUES__FLAGS = GVarName( "TRUES_FLAGS" ); G_FLAGS__FILTER = GVarName( "FLAGS_FILTER" ); G_WITH__HIDDEN__IMPS__FLAGS__COUNT = GVarName( "WITH_HIDDEN_IMPS_FLAGS_COUNT" ); G_WITH__HIDDEN__IMPS__FLAGS__CACHE__MISS = GVarName( "WITH_HIDDEN_IMPS_FLAGS_CACHE_MISS" ); G_WITH__HIDDEN__IMPS__FLAGS__CACHE__HIT = GVarName( "WITH_HIDDEN_IMPS_FLAGS_CACHE_HIT" ); G_IMPLICATIONS = GVarName( "IMPLICATIONS" ); G_WITH__IMPS__FLAGS__CACHE = GVarName( "WITH_IMPS_FLAGS_CACHE" ); G_WITH__IMPS__FLAGS__COUNT = GVarName( "WITH_IMPS_FLAGS_COUNT" ); G_WITH__IMPS__FLAGS__CACHE__HIT = GVarName( "WITH_IMPS_FLAGS_CACHE_HIT" ); G_WITH__IMPS__FLAGS__CACHE__MISS = GVarName( "WITH_IMPS_FLAGS_CACHE_MISS" ); G_CLEAR__IMP__CACHE = GVarName( "CLEAR_IMP_CACHE" ); G_BIND__GLOBAL = GVarName( "BIND_GLOBAL" ); G_UNBIND__GLOBAL = GVarName( "UNBIND_GLOBAL" ); G_RANK__FILTERS = GVarName( "RANK_FILTERS" ); G_RankFilter = GVarName( "RankFilter" ); G_RANK__FILTER = GVarName( "RANK_FILTER" ); G_RANK__FILTER__LIST__CURRENT = GVarName( "RANK_FILTER_LIST_CURRENT" ); G_RANK__FILTER__LIST = GVarName( "RANK_FILTER_LIST" ); G_RANK__FILTER__COUNT = GVarName( "RANK_FILTER_COUNT" ); /* record names used in handlers */ /* information for the functions */ NameFunc[1] = DefaultName; NamsFunc[1] = 0; NargFunc[1] = 0; NameFunc[2] = DefaultName; NamsFunc[2] = 0; NargFunc[2] = 0; NameFunc[3] = DefaultName; NamsFunc[3] = 0; NargFunc[3] = 1; NameFunc[4] = DefaultName; NamsFunc[4] = 0; NargFunc[4] = 1; NameFunc[5] = DefaultName; NamsFunc[5] = 0; NargFunc[5] = 1; NameFunc[6] = DefaultName; NamsFunc[6] = 0; NargFunc[6] = 1; /* return success */ return 0; }
/* 'InitLibrary' sets up gvars, rnams, functions */ static Int InitLibrary ( StructInitInfo * module ) { Obj func1; Obj body1; /* Complete Copy/Fopy registration */ UpdateCopyFopyInfo(); /* global variables used in handlers */ G_IS__FUNCTION = GVarName( "IS_FUNCTION" ); G_ADD__LIST = GVarName( "ADD_LIST" ); G_Error = GVarName( "Error" ); G_IS__IDENTICAL__OBJ = GVarName( "IS_IDENTICAL_OBJ" ); G_AND__FLAGS = GVarName( "AND_FLAGS" ); G_HASH__FLAGS = GVarName( "HASH_FLAGS" ); G_WITH__HIDDEN__IMPS__FLAGS = GVarName( "WITH_HIDDEN_IMPS_FLAGS" ); G_IS__SUBSET__FLAGS = GVarName( "IS_SUBSET_FLAGS" ); G_TRUES__FLAGS = GVarName( "TRUES_FLAGS" ); G_FLAGS__FILTER = GVarName( "FLAGS_FILTER" ); G_WITH__HIDDEN__IMPS__FLAGS__COUNT = GVarName( "WITH_HIDDEN_IMPS_FLAGS_COUNT" ); G_WITH__HIDDEN__IMPS__FLAGS__CACHE__MISS = GVarName( "WITH_HIDDEN_IMPS_FLAGS_CACHE_MISS" ); G_WITH__HIDDEN__IMPS__FLAGS__CACHE__HIT = GVarName( "WITH_HIDDEN_IMPS_FLAGS_CACHE_HIT" ); G_IMPLICATIONS = GVarName( "IMPLICATIONS" ); G_WITH__IMPS__FLAGS__CACHE = GVarName( "WITH_IMPS_FLAGS_CACHE" ); G_WITH__IMPS__FLAGS__COUNT = GVarName( "WITH_IMPS_FLAGS_COUNT" ); G_WITH__IMPS__FLAGS__CACHE__HIT = GVarName( "WITH_IMPS_FLAGS_CACHE_HIT" ); G_WITH__IMPS__FLAGS__CACHE__MISS = GVarName( "WITH_IMPS_FLAGS_CACHE_MISS" ); G_CLEAR__IMP__CACHE = GVarName( "CLEAR_IMP_CACHE" ); G_BIND__GLOBAL = GVarName( "BIND_GLOBAL" ); G_UNBIND__GLOBAL = GVarName( "UNBIND_GLOBAL" ); G_RANK__FILTERS = GVarName( "RANK_FILTERS" ); G_RankFilter = GVarName( "RankFilter" ); G_RANK__FILTER = GVarName( "RANK_FILTER" ); G_RANK__FILTER__LIST__CURRENT = GVarName( "RANK_FILTER_LIST_CURRENT" ); G_RANK__FILTER__LIST = GVarName( "RANK_FILTER_LIST" ); G_RANK__FILTER__COUNT = GVarName( "RANK_FILTER_COUNT" ); /* record names used in handlers */ /* information for the functions */ C_NEW_STRING( DefaultName, 14, "local function" ); C_NEW_STRING( FileName, 21, "GAPROOT/lib/filter1.g" ); NameFunc[1] = DefaultName; NamsFunc[1] = 0; NargFunc[1] = 0; NameFunc[2] = DefaultName; NamsFunc[2] = 0; NargFunc[2] = 0; NameFunc[3] = DefaultName; NamsFunc[3] = 0; NargFunc[3] = 1; NameFunc[4] = DefaultName; NamsFunc[4] = 0; NargFunc[4] = 1; NameFunc[5] = DefaultName; NamsFunc[5] = 0; NargFunc[5] = 1; NameFunc[6] = DefaultName; NamsFunc[6] = 0; NargFunc[6] = 1; /* create all the functions defined in this module */ func1 = NewFunction(NameFunc[1],NargFunc[1],NamsFunc[1],HdlrFunc1); ENVI_FUNC( func1 ) = TLS(CurrLVars); CHANGED_BAG( TLS(CurrLVars) ); body1 = NewBag( T_BODY, NUMBER_HEADER_ITEMS_BODY*sizeof(Obj)); BODY_FUNC( func1 ) = body1; CHANGED_BAG( func1 ); CALL_0ARGS( func1 ); /* return success */ return 0; }