def __init__ (   self,
  bincenters,
  binheights 
)

Definition at line 1416 of file C2Functions.py.

01416                                               :
01417         
01418         if not isinstance(binheights, C2Function): #must be a data table, create interpolator
01419             np=len(binheights)  
01420             be=_numeric.array(bincenters)
01421             bh=_numeric.array(binheights)
01422                 
01423             reversed = be[1] < be[0]    #// check for backwards  channels
01424         
01425             if reversed:
01426                 be=be[::-1]
01427                 bh=bh[::-1]
01428         
01429             temp=self.IntermediateInterpolator(be, bh)      #// create a temporary InterpolatingFunction to integrate
01430         else:
01431             temp=binheights
01432             
01433         # integrate from first to last bin in original order, leaving results in integral
01434         # ask for relative error of 1e-6 on each bin, with absolute error set to 0 (since we don't know the data scale).
01435         integral=[0] + temp.partial_integrals(bincenters, 
01436                 absolute_error_tolerance=0, 
01437                 relative_error_tolerance=1e-6) 
01438     
01439         scale=1.0/sum(integral) 
01440 
01441         for i in range(1,len(integral)):
01442             integral[i]=integral[i]*scale + integral[i-1]
01443         integral[-1]=1.0 #force exact value on the boundary 
01444         
01445         InterpolatingFunction.__init__(self, integral, bincenters, 
01446                             lowerSlope=1.0/(scale*temp(bincenters[0])), upperSlope=1.0/(scale*temp(bincenters[-1]))
01447                 )   # use integral as x axis in inverse function
01448 
class LinLogInverseIntegratedDensity(InverseIntegratedDensity):


Generated on Wed Nov 21 10:18:32 2007 for analysis by  doxygen 1.5.4