Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <fst/script/fst-class.h>
00018 #include <fst/script/script-impl.h>
00019 #include <fst/script/difference.h>
00020
00021 namespace fst {
00022 namespace script {
00023
00024 void Difference(const FstClass &ifst1, const FstClass &ifst2,
00025 MutableFstClass *ofst, ComposeFilter compose_filter) {
00026 if (!ArcTypesMatch(ifst1, ifst2, "Difference") ||
00027 !ArcTypesMatch(*ofst, ifst1, "Difference")) return;
00028
00029 DifferenceArgs1 args(ifst1, ifst2, ofst, compose_filter);
00030 Apply<Operation<DifferenceArgs1> >("Difference", ifst1.ArcType(), &args);
00031 }
00032
00033 void Difference(const FstClass &ifst1, const FstClass &ifst2,
00034 MutableFstClass *ofst, const ComposeOptions &copts) {
00035 if (!ArcTypesMatch(ifst1, ifst2, "Difference") ||
00036 !ArcTypesMatch(*ofst, ifst1, "Difference")) return;
00037
00038 DifferenceArgs2 args(ifst1, ifst2, ofst, copts);
00039 Apply<Operation<DifferenceArgs2> >("Difference", ifst1.ArcType(), &args);
00040 }
00041
00042 REGISTER_FST_OPERATION(Difference, StdArc, DifferenceArgs1);
00043 REGISTER_FST_OPERATION(Difference, LogArc, DifferenceArgs1);
00044 REGISTER_FST_OPERATION(Difference, StdArc, DifferenceArgs2);
00045 REGISTER_FST_OPERATION(Difference, LogArc, DifferenceArgs2);
00046
00047 }
00048 }
00049