|
[yoda-svn] r420 - in trunk: . pyext/yoda pyext/yoda/includeblackhole at projects.hepforge.org blackhole at projects.hepforge.orgWed Dec 7 22:06:04 GMT 2011
Author: buckley Date: Wed Dec 7 22:06:04 2011 New Revision: 420 Log: Mapping the Dbn1D and Dbn2D classes into Python. Modified: trunk/ChangeLog trunk/pyext/yoda/Makefile.am trunk/pyext/yoda/include/20-Dbn1D.pyx trunk/pyext/yoda/include/20-Dbn2D.pyx Modified: trunk/ChangeLog ============================================================================== --- trunk/ChangeLog Wed Dec 7 21:29:15 2011 (r419) +++ trunk/ChangeLog Wed Dec 7 22:06:04 2011 (r420) @@ -1,5 +1,7 @@ 2011-12-07 Andy Buckley <andy.buckley at cern.ch> + * Mapping the Dbn1D and Dbn2D classes into Python. + * Adding an outflows() accessor to Histo2D. * Writing out total dbn lines for Histo1D and Profile1D in the Modified: trunk/pyext/yoda/Makefile.am ============================================================================== --- trunk/pyext/yoda/Makefile.am Wed Dec 7 21:29:15 2011 (r419) +++ trunk/pyext/yoda/Makefile.am Wed Dec 7 22:06:04 2011 (r420) @@ -9,4 +9,3 @@ clean-local: rm yoda.cpp yoda.pyx - Modified: trunk/pyext/yoda/include/20-Dbn1D.pyx ============================================================================== --- trunk/pyext/yoda/include/20-Dbn1D.pyx Wed Dec 7 21:29:15 2011 (r419) +++ trunk/pyext/yoda/include/20-Dbn1D.pyx Wed Dec 7 22:06:04 2011 (r420) @@ -1,6 +1,28 @@ cdef extern from "YODA/Dbn1D.h" namespace "YODA": cdef cppclass cDbn1D "Dbn1D": - pass + cDbn1D() + cDbn1D(unsigned int numEntries, double sumW, double sumW2, double sumWX, double sumWX2) + void fill(double val, double weight) + void reset() + void scaleW(double scalefactor) + void scaleX(double factor) + double mean() + double xMean() + double variance() + double xVariance() + double stdDev() + double xStdDev() + double stdErr() + double xStdErr() + double rms() + double xRMS() + unsigned long numEntries() + double effNumEntries() + double sumW() + double sumW2() + double sumWX() + double sumWX2() + # TODO: map operator+ and operator-, both internal and external cdef class Dbn1D: @@ -14,6 +36,16 @@ if self._dealloc: del self.thisptr + + def __init__(self, *args, **kwargs): + cdef: + unsigned int numEntries + double sumW, sumW2, sumWX, sumWX2 + assert len(args) == 5 + numEntries, sumW, sumW2, sumWX, sumWX2 = args + self.setptr(new cDbn1D(numEntries, sumW, sumW2, sumWX, sumWX2), True) + + cdef Dbn1D setptr(self, cDbn1D *ptr, bool dealloc): if self._dealloc: del self.thisptr @@ -26,6 +58,70 @@ return self.thisptr + def fill(self, double x, double weight=1.0): + self.ptr().fill(x, weight) + + def reset(self): + self.ptr().reset() + + def scaleW(self, scalefactor): + self.ptr().scaleW(scalefactor) + + def scaleX(self, factor): + self.ptr().scaleX(factor) + + def mean(self): + return self.ptr().mean() + + def xMean(self): + return self.ptr().xMean() + + def variance(self): + return self.ptr().variance() + + def xVariance(self): + return self.ptr().xVariance() + + def stdDev(self): + return self.ptr().stdDev() + + def xStdDev(self): + return self.ptr().xStdDev() + + def stdErr(self): + return self.ptr().stdDev() + + def xStdErr(self): + return self.ptr().xStdDev() + + def rms(self): + return self.ptr().rms() + + def xRMS(self): + return self.ptr().xRMS() + + def numEntries(self): + return self.ptr().numEntries() + + def effNumEntries(self): + return self.ptr().effNumEntries() + + def sumW(self): + return self.ptr().sumW() + + def sumW2(self): + return self.ptr().sumW2() + + def sumWX(self): + return self.ptr().sumWX() + + def sumWX2(self): + return self.ptr().sumWX2() + + # TODO: map operator+ and operator-, both internal and external + + + cdef Dbn1D Dbn1D_fromptr(cDbn1D *ptr, dealloc=False): # Construct a Python Dbn1D from a pointer to a cDbn1D, # without calling __init__ and excessive memory allocation Modified: trunk/pyext/yoda/include/20-Dbn2D.pyx ============================================================================== --- trunk/pyext/yoda/include/20-Dbn2D.pyx Wed Dec 7 21:29:15 2011 (r419) +++ trunk/pyext/yoda/include/20-Dbn2D.pyx Wed Dec 7 22:06:04 2011 (r420) @@ -1,6 +1,33 @@ cdef extern from "YODA/Dbn2D.h" namespace "YODA": cdef cppclass cDbn2D "Dbn2D": - pass + cDbn2D() + cDbn2D(unsigned int numEntries, double sumW, double sumW2, double sumWX, double sumWX2, double sumWY, double sumWY2, double sumWXY) + void fill(double valX, double valY, double weight) + void reset() + void scaleW(double scalefactor) + void scaleX(double factor) + void scaleY(double factor) + void scaleXY(double factor) + double xMean() + double yMean() + double xVariance() + double yVariance() + double xStdDev() + double yStdDev() + double xStdErr() + double yStdErr() + double yRMS() + double xRMS() + unsigned long numEntries() + double effNumEntries() + double sumW() + double sumW2() + double sumWX() + double sumWX2() + double sumWY() + double sumWY2() + double sumWXY() + # TODO: map operator+ and operator-, both internal and external cdef class Dbn2D: @@ -14,6 +41,16 @@ if self._dealloc: del self.thisptr + + def __init__(self, *args, **kwargs): + cdef: + unsigned int numEntries + double sumW, sumW2, sumWX, sumWX2, sumWY, sumWY2, sumWXY + assert len(args) == 8 + numEntries, sumW, sumW2, sumWX, sumWX2, sumWY, sumWY2, sumWXY = args + self.setptr(new cDbn2D(numEntries, sumW, sumW2, sumWX, sumWX2, sumWY, sumWY2, sumWXY), True) + + cdef Dbn2D setptr(self, cDbn2D *ptr, bool dealloc): if self._dealloc: del self.thisptr @@ -26,6 +63,82 @@ return self.thisptr + def fill(self, double x, double y, double weight=1.0): + self.ptr().fill(x, y, weight) + + def reset(self): + self.ptr().reset() + + def scaleW(self, scalefactor): + self.ptr().scaleW(scalefactor) + + def scaleX(self, factor): + self.ptr().scaleX(factor) + + def scaleY(self, factor): + self.ptr().scaleY(factor) + + def xMean(self): + return self.ptr().xMean() + + def yMean(self): + return self.ptr().yMean() + + def xVariance(self): + return self.ptr().xVariance() + + def yVariance(self): + return self.ptr().yVariance() + + def xStdDev(self): + return self.ptr().xStdDev() + + def yStdDev(self): + return self.ptr().yStdDev() + + def xStdErr(self): + return self.ptr().xStdDev() + + def yStdErr(self): + return self.ptr().yStdDev() + + def xRMS(self): + return self.ptr().xRMS() + + def yRMS(self): + return self.ptr().yRMS() + + def numEntries(self): + return self.ptr().numEntries() + + def effNumEntries(self): + return self.ptr().effNumEntries() + + def sumW(self): + return self.ptr().sumW() + + def sumW2(self): + return self.ptr().sumW2() + + def sumWX(self): + return self.ptr().sumWX() + + def sumWX2(self): + return self.ptr().sumWX2() + + def sumWY(self): + return self.ptr().sumWY() + + def sumWY2(self): + return self.ptr().sumWY2() + + def sumWXY(self): + return self.ptr().sumWXY() + + # TODO: map operator+ and operator-, both internal and external + + + cdef Dbn2D Dbn2D_fromptr(cDbn2D *ptr, dealloc=False): # Construct a Python Dbn2D from a pointer to a cDbn2D, # without calling __init__ and excessive memory allocation
More information about the yoda-svn mailing list |