/*! \brief Initializes attrubutes using t0_n, rot0_n, L0m_n, order_default_n, move_n and tStep inputs. * * Inputs are checked. * * #tdelay method is used to set #DelayStore attribute * * #position method is used to set #SCposStore attribute * * Attributes are set : * * \arg #arot =\f$ \frac{2 \cdot \pi}{3} \f$ * \arg #rot :\f$ rot[i] = i \cdot arot \cdot rot0 \textrm{ for i=1,2,3 } \f$ * \arg #crot : \f$ crot[i] = cos(rot_i) \textrm{ for i=1,2,3 } \f$ * \arg #srot : \f$ srot[i=0,1,2] = sin(rot_i) \textrm{ for i=1,2,3 } \f$ * \arg #SCposStore :\f$ SCposStore[i] = position(i,0) \textrm{ for i=1,2,3,4 } \f$ * \arg #DelayStore : * \f$ \textrm{ for i=1,2,3,4 } * \left\{ \begin{array}{l} * DelayStore[i-1] = tdelay(i,i,mod((i+1),3)+1,2,0) \\ * DelayStore[i+2] = tdelay(i,i,mod(i,3)+1,2,0) * \end{array} \right. \f$ * \arg #tRangeStorePos = #tRangeStorePos_default * \arg #tRangeStoreDelay = \f$ min(tStep,tRangeStoreDelay\_default) \f$ */ void GeometryMLDC::init(double t0_n, double rot0_n, double L0m_n, int order_default_n, int move_n, double tStep) { //cout << "Create orbits : MLDC ..." << endl; initGlobal(t0_n, rot0_n, L0m_n, order_default_n, move_n, tStep); Approx = move_n; arot=2./3.*M_PI; rot.resize(3); crot.resize(3); srot.resize(3); for(int nb=1; nb<=3; nb++){ rot[nb-1]=(nb-1)*arot+rot0; crot[nb-1]=cos(rot[nb-1]); srot[nb-1]=sin(rot[nb-1]); } e_mldc = 0.00964838; L0s = L0m/c_SI; sqrt_3 = sqrt(3.0); i32 = 1.0/32.0; r1532 = 15.0/32.0; pi3o2 = 3.0*M_PI/2.0; pi2o3 = 2.0*M_PI/3.0; pi4o3 = 4.0*M_PI/3.0; for(int i=1; i<4; i++){ SCposStore[i-1] = position(i,0.0); } for(int i=1; i<4; i++){ DelayStore[i-1] = tdelay(i,(i+1)%3+1,2,0.0); //cout << " L" << i << (i+1)%3+1<< endl; DelayStore[i+2] = tdelay(i,i%3+1,2,0.0); //cout << " L" << i << i%3+1 << endl; } //cout << " --> OK" << endl; }
int main( int argc, char **argv ) { PomdpToolsProgOptions tool_options; PomdpSolveParams solve_params; tool_options = POMDP_TOOLS_OPTS_create( argc, argv ); gStdErrFile = stderr; solve_params = newPomdpSolveParams(); /* Manually set these. */ gNumStates = tool_options->states; gNumObservations = tool_options->obs; /* CF_printf( POMDP_TOOLS_OPTS_toConfigFile( tool_options ) ); */ switch( tool_options->tool ) { case POMDP_TOOLS_OPTS_Tool_compare_alphas: if (( tool_options->states < 1 ) || ( strcmp( tool_options->alpha1, "" ) == 0 ) || ( strcmp( tool_options->alpha2, "" ) == 0 ) || ( strcmp( tool_options->result_filename, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s, %s, %s and %s.\n", POMDP_TOOLS_OPTS_ARG_ALPHA1_STR, POMDP_TOOLS_OPTS_ARG_ALPHA2_STR, POMDP_TOOLS_OPTS_ARG_O_STR, POMDP_TOOLS_OPTS_ARG_STATES_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } UTIL_compareAlphaFiles( tool_options->alpha1, tool_options->alpha2, tool_options->epsilon, tool_options->result_filename ); break; case POMDP_TOOLS_OPTS_Tool_belief_alpha_compare: if (( tool_options->states < 1 ) || ( strcmp( tool_options->alpha1, "" ) == 0 ) || ( strcmp( tool_options->alpha2, "" ) == 0 ) || ( strcmp( tool_options->belief, "" ) == 0 ) || ( strcmp( tool_options->result_filename, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s, %s, %s, %s and %s.\n", POMDP_TOOLS_OPTS_ARG_ALPHA1_STR, POMDP_TOOLS_OPTS_ARG_ALPHA2_STR, POMDP_TOOLS_OPTS_ARG_BELIEF_STR, POMDP_TOOLS_OPTS_ARG_O_STR, POMDP_TOOLS_OPTS_ARG_STATES_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } UTIL_compareAlphaFilesUsingBeliefs( tool_options->alpha1, tool_options->alpha2, tool_options->belief, tool_options->epsilon, tool_options->result_filename ); break; case POMDP_TOOLS_OPTS_Tool_pg_eval: if (( strcmp( tool_options->pomdp, "" ) == 0 ) || ( strcmp( tool_options->pg1, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s and %s.\n", POMDP_TOOLS_OPTS_ARG_PG1_STR, POMDP_TOOLS_OPTS_ARG_POMDP_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } /* See the pg-search-source/pg-eval-main.c file */ initializePomdp( tool_options->pomdp, 1e-5 ); PGE_main( tool_options->pg1 ); cleanUpPomdp(); break; case POMDP_TOOLS_OPTS_Tool_pg_relink: if (( strcmp( tool_options->pomdp, "" ) == 0 ) || ( strcmp( tool_options->alpha1, "" ) == 0 ) || ( strcmp( tool_options->alpha2, "" ) == 0 ) || ( strcmp( tool_options->pg1, "" ) == 0 ) || ( strcmp( tool_options->result_filename, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s, %s, %s, %s and %s..\n", POMDP_TOOLS_OPTS_ARG_ALPHA1_STR, POMDP_TOOLS_OPTS_ARG_ALPHA2_STR, POMDP_TOOLS_OPTS_ARG_POMDP_STR, POMDP_TOOLS_OPTS_ARG_O_STR, POMDP_TOOLS_OPTS_ARG_PG1_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } initializePomdp( tool_options->pomdp, 1e-5 ); UTIL_relinkPolicyGraph( tool_options->alpha1, tool_options->pg1, tool_options->alpha2, tool_options->result_filename ); cleanUpPomdp(); break; case POMDP_TOOLS_OPTS_Tool_map_beliefs: if ( (tool_options->states < 1 ) || ( strcmp( tool_options->belief, "" ) == 0 ) || ( strcmp( tool_options->alpha1, "" ) == 0 ) || ( strcmp( tool_options->result_filename, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s, %s, %s and %s.\n", POMDP_TOOLS_OPTS_ARG_BELIEF_STR, POMDP_TOOLS_OPTS_ARG_ALPHA1_STR, POMDP_TOOLS_OPTS_ARG_O_STR, POMDP_TOOLS_OPTS_ARG_STATES_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } UTIL_mapBeliefList( tool_options->belief, tool_options->alpha1, tool_options->epsilon, tool_options->result_filename ); break; case POMDP_TOOLS_OPTS_Tool_pg_isomorphism: if ( (tool_options->obs < 1 ) || ( strcmp( tool_options->pg1, "" ) == 0 ) || ( strcmp( tool_options->pg2, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s, %s and %s.\n", POMDP_TOOLS_OPTS_ARG_PG1_STR, POMDP_TOOLS_OPTS_ARG_PG2_STR, POMDP_TOOLS_OPTS_ARG_OBS_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } fprintf( stderr, "This feature not yet implemented\n" ); exit( -1 ); break; case POMDP_TOOLS_OPTS_Tool_purge_alphas: if ( (tool_options->states < 1 ) || ( strcmp( tool_options->alpha1, "" ) == 0 ) || ( strcmp( tool_options->result_filename, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s, %s and %s.\n", POMDP_TOOLS_OPTS_ARG_ALPHA1_STR, POMDP_TOOLS_OPTS_ARG_O_STR, POMDP_TOOLS_OPTS_ARG_STATES_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } initCommon(); initGlobal(); initLpInterface( solve_params ); UTIL_purgeAlphaFile( tool_options->alpha1, tool_options->result_filename, solve_params ); break; case POMDP_TOOLS_OPTS_Tool_sort_alphas: if ( (tool_options->states < 1 ) || ( strcmp( tool_options->alpha1, "" ) == 0 ) || ( strcmp( tool_options->result_filename, "" ) == 0 )) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s, %s and %s.\n", POMDP_TOOLS_OPTS_ARG_ALPHA1_STR, POMDP_TOOLS_OPTS_ARG_O_STR, POMDP_TOOLS_OPTS_ARG_STATES_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } UTIL_sortAlphaFile( tool_options->alpha1, tool_options->result_filename ); break; case POMDP_TOOLS_OPTS_Tool_update_beliefs: if ( strcmp( tool_options->pomdp, "" ) == 0 ) { fprintf( stderr, "Missing required arguments(s) for '%s'\n", POMDP_TOOLS_OPTS_Tool_Str[tool_options->tool] ); fprintf( stderr, "Need: %s.\n", POMDP_TOOLS_OPTS_ARG_POMDP_STR ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } initializePomdp( tool_options->pomdp, 1e-5 ); UTIL_doBeliefUpdates(); if ( gInitialBelief == NULL ) { fprintf( stderr, "POMDP file '%s' must specify a starting belief state\n", tool_options->pomdp ); fprintf( stderr, "Aborted.\n" ); exit( -1 ); } cleanUpPomdp(); break; default: fprintf( stderr, "Unreckognized tool option\n" ); POMDP_TOOLS_OPTS_showUsageBrief( stderr, argv[0] ); exit( -1 ); } /* switch param->tool */ /* This will also take care of deallocating the 'opts' structure. */ destroyPomdpSolveParams( solve_params ); return 0; } /* main */
/* * Go evaluator main program */ int main(int argc, char **argv) { int narg; #ifdef HAVE_LOCALECONV setlocale(LC_ALL,""); /* set up locale */ #endif #ifdef LOCALEDIR bindtextdomain(PACKAGE,LOCALEDIR); textdomain(PACKAGE); #endif initLogfile((char *) "-"); initFileIo(); /* Set up special file handling */ strMsg(entryPoint, NumberOf(entryPoint), "lo.boot@__boot"); /* standard entry point */ if ((narg = getOptions(argc, argv)) < 0) { outMsg(logFile, _("usage: %s [-v] [-L log] [-g host:port] [-V] [-b boot:ver] [-m entry] [-r repo] [-d wd]" " [-h sizeK] [-s sizeK] [-d rootdir] args ...\n"), argv[0]); exit(1); } // Set up repository directory if (uniIsLit(repoDir, "")) { // overridden? char *dir = getenv("LO_DIR"); /* pick up the installation directory */ if (dir == NULL) dir = LODIR; /* Default installation path */ uniCpy(repoDir, NumberOf(repoDir), dir); } // set up working directory if (uniIsLit(loCWD, "")) { char cbuff[MAXPATHLEN]; char *cwd = getcwd(cbuff, NumberOf(cbuff)); /* compute current starting directory */ if (cwd == NULL) syserr("cant determine current directory"); else strMsg(loCWD, NumberOf(loCWD), "%s/", cwd); } if (loadManifest(repoDir) != Ok) { outMsg(logFile, "error in loading repository from %s", repoDir); exit(99); } /* IMPORTANT -- Keep the order of these set up calls */ initGlobal(initHeapSize); /* start up the global space */ initClass(); /* Initialize the class handlers */ initPrograms(); /* Initialize program handling */ initDict(); /* Start up the dictionaries */ install_escapes(); /* Initialize the escape table */ initFiles(); /* initialize file tables */ init_args(argv, argc, narg); /* Initialize the argument list */ init_time(); /* Initialize time stuff */ setupSignals(); #ifdef EXECTRACE if (traceCount) atexit(dumpInsCount); #endif bootstrap(entryPoint, bootPkg, bootVer); return EXIT_SUCCEED; /* exit the lo system cleanly */ }