20 DEFINE_int32(classes, 1,
"# of probability distributions");
21 DEFINE_bool(transducer,
false,
"Output a transducer");
22 DEFINE_bool(weights,
false,
"Output a weighted FST");
24 int main(
int argc,
char **argv) {
30 string usage =
"Generates a random FST.\n\n Usage: ";
32 usage +=
"[out.fst]\n";
35 SET_FLAGS(usage.c_str(), &argc, &argv,
true);
41 string out_name = (argc > 1 && (strcmp(argv[1],
"-") != 0)) ? argv[1] :
"";
45 int num_states = (rand() % FLAGS_states) + 1;
46 int num_classes = (rand() % FLAGS_classes) + 1;
47 int num_labels = (rand() % FLAGS_labels) + 1;
50 using TropicalWeightGenerate = WeightGenerate<TropicalWeight>;
51 std::unique_ptr<TropicalWeightGenerate> generate(FLAGS_weights ?
52 new TropicalWeightGenerate(
false) :
nullptr);
54 num_classes, num_labels, FLAGS_transducer, generate.get());
void ShowUsage(bool long_usage=true)
void Generate(StdMutableFst *fst)
VectorFst< StdArc > StdVectorFst
ArcTpl< TropicalWeight > StdArc
#define SET_FLAGS(usage, argc, argv, rmflags)
TropicalWeightTpl< float > TropicalWeight
DEFINE_bool(transducer, false,"Output a transducer")
DEFINE_int32(seed, time(0),"Random seed")
int main(int argc, char **argv)