# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1266681103 3600
# Node ID 9d380bf271941ce00c6f0edb200f9a81a71959a5
# Parent c841ae1aca299b7274d51c506871c57b73f1311a
Use 'long long' flow cost in dimacssolver.cc (#347)
diff git a/tools/dimacssolver.cc b/tools/dimacssolver.cc
a

b


91  91  if(report) std::cerr << "\nMax flow value: " << pre.flowValue() << '\n'; 
92  92  } 
93  93  
94   template<class Value> 
 94  template<class Value, class LargeValue> 
95  95  void solve_min(ArgParser &ap, std::istream &is, std::ostream &, 
96  96  Value infty, DimacsDescriptor &desc) 
97  97  { 
… 
… 

127  127  if (report) { 
128  128  std::cerr << "Run NetworkSimplex: " << ti << "\n\n"; 
129  129  std::cerr << "Feasible flow: " << (res ? "found" : "not found") << '\n'; 
130   if (res) std::cerr << "Min flow cost: " << ns.totalCost() << '\n'; 
 130  if (res) std::cerr << "Min flow cost: " 
 131  << ns.template totalCost<LargeValue>() << '\n'; 
131  132  } 
132  133  } 
133  134  
… 
… 

151  152  } 
152  153  
153  154  
154   template<class Value> 
 155  template<class Value, class LargeValue> 
155  156  void solve(ArgParser &ap, std::istream &is, std::ostream &os, 
156  157  DimacsDescriptor &desc) 
157  158  { 
… 
… 

169  170  switch(desc.type) 
170  171  { 
171  172  case DimacsDescriptor::MIN: 
172   solve_min<Value>(ap,is,os,infty,desc); 
 173  solve_min<Value, LargeValue>(ap,is,os,infty,desc); 
173  174  break; 
174  175  case DimacsDescriptor::MAX: 
175  176  solve_max<Value>(ap,is,os,infty,desc); 
… 
… 

264  265  } 
265  266  
266  267  if(ap.given("double")) 
267   solve<double>(ap,is,os,desc); 
 268  solve<double, double>(ap,is,os,desc); 
268  269  else if(ap.given("ldouble")) 
269   solve<long double>(ap,is,os,desc); 
 270  solve<long double, long double>(ap,is,os,desc); 
270  271  #ifdef LEMON_HAVE_LONG_LONG 
271  272  else if(ap.given("long")) 
272   solve<long long>(ap,is,os,desc); 
 273  solve<long long, long long>(ap,is,os,desc); 
 274  else solve<int, long long>(ap,is,os,desc); 
 275  #else 
 276  else solve<int, long>(ap,is,os,desc); 
273  277  #endif 
274   else solve<int>(ap,is,os,desc); 
275  278  
276  279  return 0; 
277  280  } 