00001 #include "MCF2_par.hpp"
00002 #include "MCF2_init.hpp"
00003 #include "MCF2_tm.hpp"
00004 #include "MCF2_lp.hpp"
00005
00006 using std::make_pair;
00007
00008
00009
00010 int main(int argc, char* argv[])
00011 {
00012 MCF2_init init;
00013 return bcp_main(argc, argv, &init);
00014 }
00015
00016
00017
00018 template <>
00019 void BCP_parameter_set<MCF2_par>::create_keyword_list()
00020 {
00021
00022 keys.push_back(make_pair(BCP_string("MCF2_AddDummySourceSinkArcs"),
00023 BCP_parameter(BCP_CharPar, AddDummySourceSinkArcs)));
00024 keys.push_back(make_pair(BCP_string("MCF2_InputFilename"),
00025 BCP_parameter(BCP_StringPar, InputFilename)));
00026 }
00027
00028 template <>
00029 void BCP_parameter_set<MCF2_par>::set_default_entries()
00030 {
00031 set_entry(InputFilename, "small");
00032 set_entry(AddDummySourceSinkArcs, true);
00033 }
00034
00035
00036
00037 USER_initialize * BCP_user_init()
00038 {
00039 return new MCF2_init;
00040 }
00041
00042
00043
00044 BCP_user_pack*
00045 MCF2_init::packer_init(BCP_user_class* p)
00046 {
00047 return new MCF2_packer;
00048 }
00049
00050
00051
00052 BCP_tm_user *
00053 MCF2_init::tm_init(BCP_tm_prob& p,
00054 const int argnum, const char * const * arglist)
00055 {
00056 MCF2_tm* tm = new MCF2_tm;
00057 tm->par.read_from_arglist(argnum, arglist);
00058 std::ifstream ifs(tm->par.entry(MCF2_par::InputFilename).c_str());
00059 tm->data.readDimacsFormat(ifs,
00060 tm->par.entry(MCF2_par::AddDummySourceSinkArcs));
00061 return tm;
00062 }
00063
00064
00065
00066 BCP_lp_user *
00067 MCF2_init::lp_init(BCP_lp_prob& p)
00068 {
00069 return new MCF2_lp;
00070 }