"""AnalyseData.py
   
   Some routines to determine the spacing distribution
   for quantum maps.
   
   Version 0.2, 13.03.2002
   
   Copyright (C) 2002 Arnd Baecker <arnd.baecker@physik.uni-ulm.de>

"""


def histogram(data,min,max,nbins):
    from Numeric import *
    # first select only those which lie in the interval [min,max]
    hdat=compress( ((data<max)*(data>min)),data)
    bin_width=(max-min)/nbins
    # define the bins
    bins=min+bin_width*arange(nbins)
    # determine indices
    inds=searchsorted(sort(hdat),bins)
    inds=concatenate([inds,[len(hdat)]])
    # return bins and normalized histogram
    return(bins,(inds[1:]-inds[:-1])/(bin_width*len(hdat)))


def store_histogram(x_distrib,y_distrib,outdat):
    bin_width=x_distrib[1]-x_distrib[0]
    f=open(outdat,"w")                     # open file for writing
    for k in range(0,len(x_distrib)):
        f.write("% e % e \n" %  (x_distrib[k],y_distrib[k]))
        f.write("% e % e \n" %  (x_distrib[k]+bin_width,y_distrib[k]))
    f.close()     





