def __setitem__(self,idx,val): #log("Linear.__setitem__(%s,%s)"%(idx,val)) #if type(idx)==SliceType: ##log(str((idx.start,idx.stop))) #i=0 #while i<len(val): # TOO HARD #for i in range(idx.start,min(idx.stop,len(val))): #self[i]=val[i-idx.start] #else: #log(" self.v[%s]=%s"%(idx,val)) assert val[0]>0 self.v[idx]=val sonic.task_linear_setitem(self.t,idx,val[0],val[1])
def update(self,l): assert( len(l) == len(self) ) for i in range(len(l)): #self[i]=l[i] # too slow ! self.v[i]=l[i] sonic.task_linear_setitem(self.t,i,l[i][0],l[i][1])