本文整理汇总了C++中tclap::CmdLine类的典型用法代码示例。如果您正苦于以下问题:C++ CmdLine类的具体用法?C++ CmdLine怎么用?C++ CmdLine使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CmdLine类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: base
gnuplot_prog ( TCLAP::CmdLine& cmd, shared_ptr<KeyGenerators::base> _keygen ) : base ( cmd, _keygen ),
dataNameArg ( "o", "output", "Gnuplot data (all keys with correlation coefficient) file name", true, "", "path" ),
scriptNameArg ( "s", "script-output", "Gnuplot script output (all keys with correlation coefficient) file name", true, "", "path" ),
confidenceDataNameArg ( "r", "confidence-output", "Gnuplot data (best and second best keys with confidence interval) file name", true, "", "path" ),
confidenceScriptNameArg ( "g", "confidence-script-output", "Gnuplot script output (best and second best keys with confidence interval) file name", true, "", "path" ),
alphaArg ( "a", "alpha", "The alpha to compute the (1 - alpha) confidence interval", true, 0.05, "0-1" ),
bestPearson() {
bestPearson = Trace::Zero(KEYNUM);
cmd.add ( dataNameArg );
cmd.add ( scriptNameArg );
cmd.add ( confidenceDataNameArg );
cmd.add ( confidenceScriptNameArg );
cmd.add ( alphaArg );
currentTraces = 0;
};
示例2: isFlagSet
bool isFlagSet(TCLAP::CmdLine &cmdline, const std::string &arg_name)
{
using namespace TCLAP;
std::list<Arg*>& args = cmdline.getArgList();
for (std::list<Arg*>::iterator it=args.begin();it!=args.end();++it)
if ( (*it)->getName() == arg_name)
return (*it)->isSet();
return false;
}
示例3: isFlagSet
bool isFlagSet(TCLAP::CmdLine& cmdline, const std::string& arg_name)
{
using namespace TCLAP;
std::list<Arg*>& args = cmdline.getArgList();
for (auto& arg : args)
if (arg->getName() == arg_name) return arg->isSet();
return false;
}
示例4: getArgValue
bool getArgValue(TCLAP::CmdLine &cmdline, const std::string &arg_name, T &out_val)
{
using namespace TCLAP;
std::list<Arg*>& args = cmdline.getArgList();
for (std::list<Arg*>::iterator it=args.begin();it!=args.end();++it)
{
if ( (*it)->getName() == arg_name)
{
// Is it set? Return the default value anyway:
TCLAP::ValueArg<T> *arg = static_cast<TCLAP::ValueArg<T> *>(*it);
out_val = arg->getValue();
return (*it)->isSet();
}
}
return false;
}
示例5: getArgValue
bool getArgValue(
TCLAP::CmdLine& cmdline, const std::string& arg_name, T& out_val)
{
using namespace TCLAP;
std::list<Arg*>& args = cmdline.getArgList();
for (auto& it : args)
{
if (it->getName() == arg_name)
{
// Is it set? Return the default value anyway:
auto* arg = static_cast<TCLAP::ValueArg<T>*>(it);
out_val = arg->getValue();
return it->isSet();
}
}
return false;
}
示例6: add
void add(TCLAP::CmdLine &cmd) {
cmd.add(outputArg);
cmd.add(threadsArg);
cmd.add(heightArg);
cmd.add(widthArg);
}
示例7: main
int main (int argc, char *argv[]) {
/** Set up the command line arguments */
TCLAP::CmdLine command ("Parition a graph based on sparsification",
' ');
TCLAP::SwitchArg randomSwitch ("r",
"random",
"Use a random graph",
command,
false);
TCLAP::SwitchArg debugSwitch ("d",
"debug",
"Print debug messages",
command,
false);
TCLAP::ValueArg<double> tRatio ("t",
"t-ratio",
"Tau ratio; how big can Tau be w.r.t N",
true,
2.0,
"double");
command.add (tRatio);
TCLAP::ValueArg<double> sRatio ("s",
"s-ratio",
"Ratio for num samples to take w.r.t Tau",
true,
1.0,
"double");
command.add (sRatio);
TCLAP::ValueArg<int> kSteps ("k",
"k-steps",
"The number of B.F.S steps for local graph",
true,
2,
"int");
command.add (kSteps);
TCLAP::ValueArg<int> nParts ("p",
"n-parts",
"The number of partitions to create",
true,
2,
"int");
command.add (nParts);
TCLAP::ValueArg<int> rSeed ("x",
"r-seed",
"The seed for the PRNG",
false,
0,
"int");
command.add (rSeed);
TCLAP::ValueArg<bool> isErdos ("g",
"r-type",
"Is this a Erdos-Renyi graph",
false,
false,
"bool");
command.add (isErdos);
TCLAP::ValueArg<int> nVerts ("m",
"n-verts",
"The number of vertices to generate",
false,
10,
"int");
command.add (nVerts);
TCLAP::ValueArg<int> nEdges ("n",
"n-edges",
"The number of edges to generate",
false,
10*9,
"int");
command.add (nEdges);
TCLAP::ValueArg<double> minWeight ("l",
"min-weight",
"Minimum edge weight",
false,
1.0,
"double");
command.add (minWeight);
TCLAP::ValueArg<double> maxWeight ("u",
"max-weight",
"Maximum edge weight",
false,
1.0,
"double");
command.add (maxWeight);
TCLAP::ValueArg<std::string> fileType ("i",
"input-file",
"Type of the file to read",
false,
"MATRIX_MARKET",
"string");
command.add (fileType);
TCLAP::ValueArg<std::string> fileName ("f",
"file-name",
"Name of the file to read",
false,
"",
"string");
command.add (fileName);
//.........这里部分代码省略.........
示例8: main
// Main
// ////////////////////////////////////////////////////////////
int main(int argc, char** argv)
{
// initializign the logger instance
COutputLogger logger("graphslam-engine_app");
logger.logging_enable_keep_record = true;
try
{
bool showHelp = argc > 1 && !os::_strcmp(argv[1], "--help");
bool showVersion = argc > 1 && !os::_strcmp(argv[1], "--version");
// Input Validation
cmd_line.xorAdd(dim_2d, dim_3d);
if (!cmd_line.parse(argc, argv) || showVersion || showHelp)
{
return 0;
}
// CGraphSlamEngine initialization
if (dim_2d.getValue())
{
execGraphSlamEngine<CNetworkOfPoses2DInf>(&logger);
}
else
{
execGraphSlamEngine<CNetworkOfPoses3DInf>(&logger);
}
return 0;
}
catch (exception& e)
{
logger.logFmt(
LVL_ERROR, "Program finished due to an exception!!\n%s\n",
e.what());
printf("%s", e.what());
mrpt::system::pause();
return -1;
}
catch (...)
{
logger.logFmt(
LVL_ERROR, "Program finished due to an untyped exception!!");
mrpt::system::pause();
return -1;
}
return 0;
}
示例9: main
int main(int argc, char* argv[]) { //{{{
// Random semilla_uran;
// itpp::RNG_reset(semilla_uran.strong());
// cout << PurityRMT::QubitEnvironmentHamiltonian(3,0.) <<endl;
// cout << RMT::FlatSpectrumGUE(5,.1) <<endl;
//
cmd.parse( argc, argv );
cout.precision(16);
string option=optionArg.getValue();
if (option=="test_kick_single_spin"){ // {{{// {{{
int dim=pow_2(qubits.getValue());
cvec state(dim);
double x,y;
ifstream myReadFile;
myReadFile.open("/tmp/estado.dat");
for (int i=0; i<dim; i++){
myReadFile >> x >> y ;
state(i) = complex<double>(x,y) ;
}
myReadFile.close();
vec b(3); b(0)=bx.getValue(); b(1)=by.getValue(); b(2)=bz.getValue();
apply_magnetic_kick(state,b,position.getValue());
for (int i=0; i<dim; i++){
cout << real(state(i)) << " " << real(-Im*state(i)) << endl;
}//}}}
} else if(option=="test_kick") { // {{{
示例10: main
// }}}
int main(int argc, char* argv[]) { // {{{
// {{{ initial definitions
cmd.parse( argc, argv );
int error=0;
string option=optionArg.getValue();
cout.precision(17); cerr.precision(17);
// }}}
// {{{ Set seed for random
unsigned int semilla=seed.getValue();
if (semilla == 0){
Random semilla_uran; semilla=semilla_uran.strong();
}
RNG_reset(semilla);
// }}}
// {{{ Report on the screen
if(!no_general_report.getValue()){
cout << "#linea de comando: ";
for(int i=0;i<argc;i++){
cout <<argv[i]<<" " ;
} cout << endl ;
cout << "#semilla = " << semilla << endl;
error += system("echo \\#hostname: $(hostname)");
error += system("echo \\#comenzando en: $(date)");
error += system("echo \\#uname -a: $(uname -a)");
error += system("echo \\#working dir: $(pwd)");
}
// }}}
if //{{{ option == loquesea
(option == "get_gse_spectrum"){ // {{{
vec eig=eig_sym(RandomGSEDeltaOne(dimension.getValue()));
for (int i=0; i<eig.size(); i++){ cout << eig(i) << endl;}
// cout << eig << endl;
return 0;
} // }}}
else if (option == "get_gse_flat_spectrum"){ // {{{
vec eig=FlatSpectrumGSE(dimension.getValue());
for (int i=0; i<eig.size(); i++){ cout << eig(i) << endl;}
// cout << eig <<endl;
return 0;
} // }}}
else if (option == "get_gse_flat_spectrum"){ // {{{
vec eig=FlatSpectrumGSE(dimension.getValue());
for (int i=0; i<eig.size(); i++){ cout << eig(i) << endl;}
// cout << eig <<endl;
return 0;
} // }}}
//}}}
} // }}}
示例11: main
// }}}
int main(int argc, char* argv[]){ // {{{
// {{{ initial definitions
cmd.parse( argc, argv );
int error=0;
string option=optionArg.getValue();
cout.precision(17); cerr.precision(17);
// }}}
// {{{ Set seed for random
unsigned int semilla=seed.getValue();
if (semilla == 0){
Random semilla_uran; semilla=semilla_uran.strong();
}
RNG_reset(semilla);
// }}}
// {{{ Report on the screen
if(!no_general_report.getValue()){
cout << "#linea de comando: ";
for(int i=0;i<argc;i++){
cout <<argv[i]<<" " ;
} cout << endl ;
cout << "#semilla = " << semilla << endl;
error += system("echo \\#hostname: $(hostname)");
error += system("echo \\#comenzando en: $(date)");
error += system("echo \\#uname -a: $(uname -a)");
error += system("echo \\#working dir: $(pwd)");
}
// }}}
if //{{{ option == loquesea
(option == "loquesea"){ // {{{
// }}}
} else if (option == "nichts") { // {{{
// }}}
} else { // {{{
cout << "Error en la opcion. Mira, esto es lo que paso: "
<< optionArg.getValue() << endl;
} // }}}
// }}}
// {{{ Final report
if(!no_general_report.getValue()){
error += system("echo \\#terminando: $(date)");
}
// }}}
return 0;
} // }}}
示例12: main
// ======================================================================
// main() of rawlog-edit
// ======================================================================
int main(int argc, char **argv)
{
vector<TCLAP::Arg*> arg_ops; // to be destroyed on exit.
int ret_val = 0;
try
{
// --------------- List of possible operations ---------------
map<string,TOperationFunctor> ops_functors;
arg_ops.push_back(new TCLAP::SwitchArg("","externalize",
"Op: convert to external storage.\n"
"Requires: -o (or --output)\n"
"Optional: --image-format, --txt-externals",cmd, false) );
ops_functors["externalize"] = &op_externalize;
arg_ops.push_back(new TCLAP::SwitchArg("","info",
"Op: parse input file and dump information and statistics.",cmd, false) );
ops_functors["info"] = &op_info;
arg_ops.push_back(new TCLAP::SwitchArg("","list-images",
"Op: dump a list of all external image files in the dataset.\n"
"Optionally the output text file can be changed with --text-file-output."
,cmd, false) );
ops_functors["list-images"] = &op_list_images;
arg_ops.push_back(new TCLAP::SwitchArg("","list-poses",
"Op: dump a list of all the poses of the observations in the dataset.\n"
"Optionally the output text file can be changed with --text-file-output."
,cmd, false) );
ops_functors["list-poses"] = &op_list_poses;
arg_ops.push_back(new TCLAP::SwitchArg("","list-timestamps",
"Op: generates a list with all the observations' timestamp, sensor label and C++ class name.\n"
"Optionally the output text file can be changed with --text-file-output."
,cmd, false) );
ops_functors["list-timestamps"] = &op_list_timestamps;
arg_ops.push_back(new TCLAP::ValueArg<std::string>("","remap-timestamps",
"Op: Change all timestamps t replacing it with the linear map 'a*t+b'."
"The parameters 'a' and 'b' must be given separated with a semicolon.\n"
"Requires: -o (or --output)",false,"","a;b",cmd) );
ops_functors["remap-timestamps"] = &op_remap_timestamps;
arg_ops.push_back(new TCLAP::SwitchArg("","list-range-bearing",
"Op: dump a list of all landmark observations of type range-bearing.\n"
"Optionally the output text file can be changed with --text-file-output."
,cmd, false) );
ops_functors["list-range-bearing"] = &op_list_rangebearing;
arg_ops.push_back(new TCLAP::ValueArg<std::string>("","remove-label",
"Op: Remove all observation matching the given sensor label(s)."
"Several labels can be provided separated by commas.\n"
"Requires: -o (or --output)",false,"","label[,label...]",cmd) );
ops_functors["remove-label"] = &op_remove_label;
arg_ops.push_back(new TCLAP::ValueArg<std::string>("","keep-label",
"Op: Remove all observations not matching the given sensor label(s)."
"Several labels can be provided separated by commas.\n"
"Requires: -o (or --output)",false,"","label[,label...]",cmd) );
ops_functors["keep-label"] = &op_keep_label;
arg_ops.push_back(new TCLAP::SwitchArg("","export-gps-kml",
"Op: Export GPS paths to Google Earth KML files.\n"
"Generates one .kml file with different sections for each different sensor label of GPS observations in the dataset. "
"The generated .kml files will be saved in the same path than the input rawlog, with the same "
"filename + each sensorLabel."
,cmd,false) );
ops_functors["export-gps-kml"] = &op_export_gps_kml;
arg_ops.push_back(new TCLAP::SwitchArg("","export-gps-gas-kml",
"Op: Export GPS paths to Google Earth KML files coloured by the gas concentration.\n"
"Generates one .kml file with different sections for each different sensor label of GPS observations in the dataset. "
"The generated .kml files will be saved in the same path than the input rawlog, with the same "
"filename + each sensorLabel."
,cmd,false) );
ops_functors["export-gps-gas-kml"] = &op_export_gps_gas_kml;
arg_ops.push_back(new TCLAP::SwitchArg("","export-gps-txt",
"Op: Export GPS GPGGA messages to TXT files.\n"
"Generates one .txt file for each different sensor label of GPS observations in the dataset. "
"The generated .txt files will be saved in the same path than the input rawlog, with the same "
"filename + each sensorLabel."
,cmd,false) );
ops_functors["export-gps-txt"] = &op_export_gps_txt;
arg_ops.push_back(new TCLAP::SwitchArg("","export-gps-all",
"Op: Generic export all kinds of GPS/GNSS messages to separate TXT files.\n"
"Generates one .txt file for each different sensor label and for each "
"message type in the dataset, with a first header line describing each field."
,cmd,false) );
ops_functors["export-gps-all"] = &op_export_gps_all;
arg_ops.push_back(new TCLAP::SwitchArg("","export-imu-txt",
"Op: Export IMU readings to TXT files.\n"
"Generates one .txt file for each different sensor label of an IMU observation in the dataset. "
"The generated .txt files will be saved in the same path than the input rawlog, with the same "
//.........这里部分代码省略.........
示例13: main
// ======================================================================
// main() of graph-slam
// ======================================================================
int main(int argc, char **argv)
{
vector<TCLAP::Arg*> arg_ops; // to be destroyed on exit.
int ret_val = 0;
try
{
// --------------- List of possible operations ---------------
map<string,TOperationFunctor> ops_functors;
arg_ops.push_back(new TCLAP::SwitchArg("","levmarq",
"Op: Optimizes the graph with sparse Levenberg-Marquartd using global coordinates (via mrpt::graphslam::optimize_graph_spa_levmarq).\n"
" Can be used together with: --view, --output, --max-iters, --no-span, --initial-lambda"
,cmd, false) );
ops_functors["levmarq"] = &op_levmarq;
arg_ops.push_back(new TCLAP::SwitchArg("","dijkstra",
"Op: Executes CNetworkOfPoses::dijkstra_nodes_estimate() to estimate the global pose of nodes from a Dijkstra tree and the edge relative poses.\n"
" Can be used together with: --view, --output"
,cmd, false) );
ops_functors["dijkstra"] = &op_dijkstra;
arg_ops.push_back(new TCLAP::SwitchArg("","info",
"Op: Loads the graph and displays statistics and information on it.\n"
,cmd, false) );
ops_functors["info"] = &op_info;
// --------------- End of list of possible operations --------
// Parse arguments:
if (!cmd.parse( argc, argv ))
throw std::runtime_error(""); // should exit.
// Exactly 1 or --2d & --3d must be specified:
if ( (arg_2d.isSet() && arg_3d.isSet()) || (!arg_2d.isSet() && !arg_3d.isSet()) )
throw std::runtime_error("Exactly one --2d or --3d must be used.");
const bool is3d = arg_3d.isSet();
string input_file = arg_input_file.getValue();
const bool verbose = !arg_quiet.getValue();
// Check the selected operation:
// Only one of the ops should be selected:
string selected_op;
for (size_t i=0;i<arg_ops.size();i++)
if (arg_ops[i]->isSet())
{
if (selected_op.empty())
{
selected_op = arg_ops[i]->getName();
}
else throw std::runtime_error(
"Exactly one operation must be indicated on command line.\n"
"Use --help to see the list of possible operations.");
}
// The "--view" argument needs a bit special treatment:
if (selected_op.empty())
{
if (!arg_view.isSet())
throw std::runtime_error(
"Don't know what to do: No operation was indicated.\n"
"Use --help to see the list of possible operations.");
else
{
VERBOSE_COUT << "Operation to perform: " "view" << endl;
op_view(input_file,is3d,cmd,verbose);
}
}
else
{
VERBOSE_COUT << "Operation to perform: " << selected_op << endl;
// ------------------------------------
// EXECUTE THE REQUESTED OPERATION
// ------------------------------------
ASSERTMSG_(ops_functors.find(selected_op)!=ops_functors.end(), "Internal error: Unknown operation functor!")
// Call the selected functor:
ops_functors[selected_op](input_file,is3d,cmd,verbose);
}
// successful end of program.
ret_val = 0;
}
catch(std::exception &e)
{
if (strlen(e.what())) std::cerr << e.what() << std::endl;
ret_val = -1;
}
// Free mem:
for (size_t i=0;i<arg_ops.size();i++)
delete arg_ops[i];
// end:
return ret_val;
//.........这里部分代码省略.........
示例14: main
int main(int argc, char **argv)
{
try
{
printf(" gps2rawlog - Part of the MRPT\n");
printf(" MRPT C++ Library: %s - Sources timestamp: %s\n", MRPT_getVersion().c_str(), MRPT_getCompilationDate().c_str());
// Parse arguments:
if (!cmd.parse( argc, argv ))
throw std::runtime_error(""); // should exit.
const string input_gps_file = arg_input_file.getValue();
string output_rawlog_file = arg_output_file.getValue();
if (output_rawlog_file.empty())
output_rawlog_file = mrpt::system::fileNameChangeExtension(input_gps_file,"rawlog");
ASSERT_FILE_EXISTS_(input_gps_file)
// Open input rawlog:
CFileGZInputStream fil_input;
cout << "Opening for reading: '" << input_gps_file << "'...\n";
fil_input.open(input_gps_file);
cout << "Open OK.\n";
// Open output:
if (mrpt::system::fileExists(output_rawlog_file) && !arg_overwrite.isSet())
{
cout << "Output file already exists: `"<<output_rawlog_file<<"`, aborting. Use `-w` flag to overwrite.\n";
return 1;
}
CFileGZOutputStream fil_out;
cout << "Opening for writing: '" << output_rawlog_file << "'...\n";
if (!fil_out.open(output_rawlog_file))
throw std::runtime_error("Error writing file!");
// GPS object:
CGPSInterface gps_if;
gps_if.bindStream(&fil_input);
// ------------------------------------
// Parse:
// ------------------------------------
while ( !fil_input.checkEOF() )
{
gps_if.doProcess();
CGenericSensor::TListObservations lst_obs;
gps_if.getObservations(lst_obs);
printf("%u bytes parsed, %u new observations identified...\n",(unsigned)fil_input.getPosition(),(unsigned)lst_obs.size());
for (CGenericSensor::TListObservations::const_iterator it=lst_obs.begin();it!=lst_obs.end();++it) {
fil_out << *it->second;
}
}
// successful end of program.
return 0;
}
catch(std::exception &e)
{
if (strlen(e.what())) std::cerr << e.what() << std::endl;
return 1;
}
} // end of main()
示例15: main
// Main
// ////////////////////////////////////////////////////////////
int main(int argc, char **argv)
{
// initializign the logger instance
COutputLogger logger("graphslam-engine_app");
logger.logging_enable_keep_record = true;
try {
bool showHelp = argc>1 && !os::_strcmp(argv[1],"--help");
bool showVersion = argc>1 && !os::_strcmp(argv[1],"--version");
// Instance for managing the available graphslam deciders optimizers
TUserOptionsChecker graphslam_opts;
// Input Validation
if (!cmd_line.parse( argc, argv ) || showVersion || showHelp) {
return 0;
}
// fetch the command line graphslam_opts
// ////////////////////////////////////////////////////////////
// decide whether to display the help messages for the deciders/optimizers
{
bool list_registrars = false;
if (list_all_registrars.getValue()) {
graphslam_opts.dumpRegistrarsToConsole("all");
list_registrars = true;
}
if (list_node_registrars.getValue()) {
graphslam_opts.dumpRegistrarsToConsole("node");
list_registrars = true;
}
if (list_edge_registrars.getValue()) {
graphslam_opts.dumpRegistrarsToConsole("edge");
list_registrars = true;
}
if (list_optimizers.getValue()) {
graphslam_opts.dumpOptimizersToConsole();
}
if (list_registrars || list_optimizers.getValue()) {
logger.logFmt(LVL_INFO, "Exiting.. ");
return 0;
}
}
// fetch which registration deciders / optimizer to use
string node_reg = arg_node_reg.getValue();
string edge_reg = arg_edge_reg.getValue();
string optimizer = arg_optimizer.getValue();
ASSERTMSG_(graphslam_opts.checkRegistrationDeciderExists(node_reg, "node"),
format("\nNode Registration Decider %s is not available.\n",
node_reg.c_str()) );
ASSERTMSG_(graphslam_opts.checkRegistrationDeciderExists(edge_reg, "edge"),
format("\nEdge Registration Decider %s is not available.\n",
edge_reg.c_str()) );
ASSERTMSG_(graphslam_opts.checkOptimizerExists(optimizer),
format("\nOptimizer %s is not available\n",
optimizer.c_str()) );
// fetch the filenames
// ini file
string ini_fname = arg_ini_file.getValue();
// rawlog file
string rawlog_fname = arg_rawlog_file.getValue();
// ground-truth file
string ground_truth_fname;
if ( arg_ground_truth_file.isSet() ) {
ground_truth_fname = arg_ground_truth_file.getValue();
}
if (disable_visuals.getValue()) { // enabling Visualization objects
logger.logFmt(LVL_WARN, "Running on headless mode - Visuals disabled");
}
logger.logFmt(LVL_INFO, "Node registration decider: %s", node_reg.c_str());
logger.logFmt(LVL_INFO, "Edge registration decider: %s", edge_reg.c_str());
logger.logFmt(LVL_INFO, "graphSLAM Optimizer: %s", optimizer.c_str());
// CGraphSlamHandler initialization
CGraphSlamHandler graphslam_handler;
graphslam_handler.setOutputLoggerPtr(&logger);
graphslam_handler.readConfigFname(ini_fname);
graphslam_handler.setRawlogFname(rawlog_fname);
// Visuals initialization
if (!disable_visuals.getValue()) {
graphslam_handler.initVisualization();
}
// CGraphSlamEngine initialization
CGraphSlamEngine<CNetworkOfPoses2DInf> graphslam_engine(
ini_fname,
rawlog_fname,
ground_truth_fname,
//.........这里部分代码省略.........