# rderiv.py uses deriv from deriv import deriv from nuderiv import nuderiv def rderiv(order, npoints, point, h): # return c[] # compute coefficients to numerically compute # a derivative of order 'order' using 'npoints' # at ordinate point, # where order>=1, npoints>=order+1, 0 <= point < npoints, # 'c' array returned with the coefficients, c = [0.0 for i in range(npoints)] a = [0.0 for i in range(npoints)] aa = [0.0 for i in range(npoints)] if(order+npoints<=15): a,bb = deriv(order, npoints, point) hpower = 1.0 for i in range(order): hpower = hpower*h hpower = 1.0/(bb*hpower) for i in range(npoints): c[i]=hpower*a[i] else: for i in range(npoints): aa[i] = h*i c = nuderiv(order, npoints, point, aa) # end if return c # end rderiv