X-Git-Url: http://git.treefish.org/~alex/phys/latlib.git/blobdiff_plain/d4e3cb0ebd372ab5e931490599fa0c72831bc23f..0c708ebeb7aec487326d89207d96b9e61bd541ad:/obs.cpp?ds=inline diff --git a/obs.cpp b/obs.cpp deleted file mode 100644 index 75c1d93..0000000 --- a/obs.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "obs.h" - -#include - -using namespace std; - -template -void obs::addMeas(obstype val[], int valsize) -{ - for(int i=0; i -void obs::addMeas(const obstype& val) -{ - measurements.push_back(val); -} - -template -void obs::mean(const string& compid, const list& meas) -{ - computations[compid][0] = 0; - computations[compid][1] = 0; - int nmeas = meas.size(); - - for(list::iterator measIt = meas.begin(); measIt != meas.end(); ++measIt) - computations[compid][0] += *measIt; - computations[compid][0] /= nmeas; - - for(list::iterator measIt = meas.begin(); measIt != meas.end(); ++measIt) - computations[compid][1] += pow( *measIt - computations[compid][0], 2 ); - computations[compid][1] /= nmeas*(nmeas-1); - computations[compid][1] = sqrt(computations[compid][1]); -} - -template -void obs::computeJack(const string& compid, double (*func)(const list& vals, void *para), void *para) -{ - int nmeas=measurements.size(); - double manymeans[nmeas]; - - computations[compid][0] = 0; - computations[compid][1] = 0; - - int imeas=0; - for(typename list::iterator removedIt = measurements.begin(); removedIt != measurements.end(); imeas++) - { - obstype removed = *removedIt; - - typename list::iterator nextAfterIt = removedIt; - ++nextAfterIt; - - measurements.erase(removedIt); - - manymeans[imeas] = func(measurements, para); - computations[compid][0] += manymeans[imeas]; - - measurements.insert(nextAfterIt, removed); - } - computations[compid][0] /= nmeas; - - for(int imean=0; imean