5 #include <tclap/CmdLine.h> 11 using namespace popgen;
12 using namespace TCLAP;
15 void run(T generator,
const string& prefix) {
16 cerr <<
"Generating...\n";
17 generator.generate(prefix);
21 int main(
int argc,
char** argv) {
24 CmdLine cmd(
"Commandline interface of the PopulationGenerator",
' ',
"Beta");
26 ValueArg<string> sourceArg(
"i",
"input",
"Input xml file for the configuration of the generator",
true,
27 "data/happy_day.xml",
"string", cmd);
28 ValueArg<string> outputPrefixArg(
"o",
"output",
"Output prefix",
true,
"pop",
"string", cmd);
29 string options =
"The random generator (one of the following): ";
30 options +=
"default_random_engine - mt19937 - mt19937_64 - minstd_rand0 - minstd_rand - ranlux24_base - ranlux48_base - ranlux24 - ranlux48 - knuth_b";
31 ValueArg<string> rngArg(
"r",
"randomgenerator", options,
false,
"mt19937",
"string", cmd);
34 ValueArg<int> seedArg(
"s",
"seed",
"The seed of the random generator",
false, 1,
"int");
38 cmd.parse(argc, argv);
41 string sourceXml = sourceArg.getValue();
42 string prefix = outputPrefixArg.getValue();
43 string rng = rngArg.getValue();
44 int seed = seedArg.getValue();
46 cerr <<
"Starting...\n";
47 if (rng ==
"default_random_engine") {
49 run(generator, prefix);
50 }
else if (rng ==
"mt19937") {
52 run(generator, prefix);
53 }
else if (rng ==
"mt19937_64") {
55 run(generator, prefix);
56 }
else if (rng ==
"minstd_rand0") {
58 run(generator, prefix);
59 }
else if (rng ==
"minstd_rand") {
61 run(generator, prefix);
62 }
else if (rng ==
"ranlux24_base") {
64 run(generator, prefix);
65 }
else if (rng ==
"ranlux48_base") {
67 run(generator, prefix);
68 }
else if (rng ==
"ranlux24") {
70 run(generator, prefix);
71 }
else if (rng ==
"ranlux48") {
73 run(generator, prefix);
74 }
else if (rng ==
"knuth_b") {
76 run(generator, prefix);
78 }
catch (ArgException& exc) {
79 cerr <<
"Error: " << exc.error() <<
" for argument " << exc.argId() << endl;
int main(int argc, char **argv)
Time Dependent Person DataType.
void run(T generator, const string &prefix)