def get_array(self,name): "return an Ifeffit array as a python list" ptr = _ifeffit.new_Parr(self.MAX_ARRAY_PTS) npts = _ifeffit.iff_get_array(name,ptr) arr = [] for i in range(npts): arr.append(_ifeffit.Parr_getitem(ptr,i)) _ifeffit.delete_Parr(ptr) if (self.num_array != None): arr = self.num_array(arr) return arr
def put_array(self,name,data): "set a python list as an Ifeffit array" if (self.num_array != None): data = list(data) npts = min(self.MAX_ARRAY_PTS, len(data)) ptr = _ifeffit.new_Parr(npts) for i in range(npts): _ifeffit.Parr_setitem(ptr,i,data[i]) p_n = _ifeffit.new_Pint() _ifeffit.Pint_assign(p_n,npts) ret = _ifeffit.iff_put_array(name, p_n, ptr) _ifeffit.delete_Pint(p_n) _ifeffit.delete_Parr(ptr) return ret