]> git.treefish.org Git - phys/latlib.git/blobdiff - obs.h
...
[phys/latlib.git] / obs.h
diff --git a/obs.h b/obs.h
index fa40a40f3fe5a31b12c2991fb3d3f1ec22a509d4..38fce5a52278c920425920b16286632b15c458f9 100644 (file)
--- a/obs.h
+++ b/obs.h
@@ -1,31 +1,27 @@
 #ifndef OBS_H
 #define OBS_H
 
 #ifndef OBS_H
 #define OBS_H
 
-#include <vector>
+#include <list>
+#include <string>
+#include <map>
 
 using namespace std;
 
 
 using namespace std;
 
-namespace obs
+template <class obstype>
+class obs
 {
 {
-  struct obsa
-  {
-    double mean;
-    double err;
-  };
+ public:
+  void addMeas(obstype val[], int valsize);
+  void addMeas(const obstype& val);
 
 
-  struct meas
-  {
-    int id;
-    vector<double> val;
-  };
+  void computeMean(const string& compid) { mean(compid, measurements); }
+  void computeJack(const string& compid, double (*func)(const list<obstype>& vals, void *para), void *para=NULL);
 
 
-  double addMeas(int id, double val);
-  double* addMeas(int id, double *val, int valsize);
+ private:
+  list<obstype> measurements;
+  map<string,double[2]> computations;
 
 
-  obsa jackObs(int id, double (*func)(vector< vector<double> > vals));
-  obsa normObs(int id);
-
-  void reset();
-}
+  void mean(const string& compid, const list<double>& meas);
+};
 
 #endif
 
 #endif