Definition at line 55 of file hermite_numerov.py. 00055 : 00056 "compute h[order](x)*exp(-x^2/2). x may be an array, and cache_key should be a unique identifier for x if cacheing is desired." 00057 if type(x) is not type(1.0): 00058 xmax=max(abs(x)) 00059 else: 00060 xmax=abs(x) 00061 00062 if (not hermite_cache.has_key(order)) or hermite_cache[order][0] < xmax: 00063 q=generate_table(order, max(1.5*xmax, hermite_x_bound)) 00064 hermite_cache[order]=q 00065 00066 if cache_key and hermite_cache.has_key((order, cache_key)): 00067 hermite_cache[(order, cache_key)][0]=time.time() #update time stamp 00068 return hermite_cache[(order, cache_key)][1] 00069 else: 00070 xmax, xa, ya, y2a=hermite_cache[order] 00071 y= spline.splint(xa, ya, y2a, x) 00072 if cache_key: 00073 hermite_cache[(order,cache_key)]=[time.time(), y] 00074 return y 00075 def purge_cache():
|