Index: src/work/alpar/f_ed_ka_demo.cc
===================================================================
--- src/work/alpar/f_ed_ka_demo.cc	(revision 117)
+++ src/work/alpar/f_ed_ka_demo.cc	(revision 118)
@@ -24,17 +24,19 @@
   Graph G;
   NodeIt s, t;
+  Timer ts;
   Graph::DynEdgeMap<int> cap(G);
   readDimacsMaxFlow(std::cin, G, s, t, cap);
 
+  std::cout << "loading time: " << ts << std::endl;
+  ts.reset();
   std::cout << "edmonds karp demo..." << std::endl;
   Graph::DynEdgeMap<int> flow(G); //0 flow
   
   int ret;
-  double pre_time=currTime();
-  Timer ts;
+  //  double pre_time=currTime();
   
   ret = maxFlow(G,flow,cap,s,t);
-  double post_time=currTime();
-  std::cout << "ellapsed time:" << ts << std::endl;
+  //  double post_time=currTime();
+  std::cout << "running time: " << ts << std::endl;
 
   //std::cout << "maximum flow: "<< std::endl;
@@ -43,5 +45,5 @@
   //}
   //std::cout<<std::endl;
-  std::cout << "elapsed time: " << post_time-pre_time << " sec"<< std::endl; 
+  //  std::cout<<"elapsed time: " << post_time-pre_time << " sec"<< std::endl; 
   std::cout << "flow value: "<< ret << std::endl;
 
Index: src/work/marci/time_measure.h
===================================================================
--- src/work/marci/time_measure.h	(revision 117)
+++ src/work/marci/time_measure.h	(revision 118)
@@ -18,11 +18,21 @@
 {
   tms ts;
+  double real_time;
+  
 public:
 
   tms &getTms() {return ts;}
   const tms &getTms() const {return ts;}
-
-  void stamp() {times(&ts);}
-  TimeStamp() { ts.tms_utime=ts.tms_stime=ts.tms_cutime=ts.tms_cstime=0;}
+  double getRealTime() const {return real_time;}
+  void stamp()
+  {
+    timeval tv;
+    times(&ts);
+    gettimeofday(&tv, 0);real_time=tv.tv_sec+double(tv.tv_usec)/1e6;
+  }
+  
+  TimeStamp()
+  { ts.tms_utime=ts.tms_stime=ts.tms_cutime=ts.tms_cstime=0; real_time=0;}
+  
   TimeStamp(void *) { stamp();}
   
@@ -33,4 +43,5 @@
     ts.tms_cutime+=b.ts.tms_cutime;
     ts.tms_cstime+=b.ts.tms_cstime;
+    real_time+=b.real_time;
     return *this;
   }
@@ -46,4 +57,5 @@
     ts.tms_cutime-=b.ts.tms_cutime;
     ts.tms_cstime-=b.ts.tms_cstime;
+    real_time-=b.real_time;
     return *this;
   }
@@ -62,4 +74,24 @@
   friend std::ostream& operator<<(std::ostream& os,const TimeStamp &t);
   
+  double getUserTime() const
+  {
+    long cls = sysconf(_SC_CLK_TCK);
+    return double(ts.tms_utime)/cls;
+  }
+  double getSystemTime() const
+  {
+    long cls = sysconf(_SC_CLK_TCK);
+    return double(ts.tms_stime)/cls;
+  }
+  double getCUserTime() const
+  {
+    long cls = sysconf(_SC_CLK_TCK);
+    return double(ts.tms_cutime)/cls;
+  }
+  double getCSystemTime() const
+  {
+    long cls = sysconf(_SC_CLK_TCK);
+    return double(ts.tms_cstime)/cls;
+  }
 };
 
@@ -83,8 +115,9 @@
 {
   long cls = sysconf(_SC_CLK_TCK);
-  os << "[ u: " << double(t.getTms().tms_utime)/cls <<
+  os << "u: " << double(t.getTms().tms_utime)/cls <<
     "s, s: " << double(t.getTms().tms_stime)/cls <<
     "s, cu: " << double(t.getTms().tms_cutime)/cls <<
-    "s, cs: " << double(t.getTms().tms_cstime)/cls << "s ]";
+    "s, cs: " << double(t.getTms().tms_cstime)/cls <<
+    "s, real: " << t.getRealTime() << "s";
   return os;
 }
