def _putAdd(vector, ids, additionVector, mask=False): """This is a temporary replacement for Numeric.put as it was not doing what we thought it was doing. """ additionVector = numerix.array(additionVector) if numerix.sometrue(mask): if len(vector.shape) < len(additionVector.shape): for j in range(vector.shape[0]): for id, value, masked in zip(ids.flat, additionVector[j].flat, mask.flat): if not masked: vector[j].flat[id] += value else: for id, value, masked in zip(ids.flat, additionVector.flat, mask.flat): if not masked: vector.flat[id] += value else: if len(vector.shape) < len(additionVector.shape): for j in range(vector.shape[0]): for id, value in zip(ids.flat, additionVector[j].flat): vector[j].flat[id] += value else: for id, value in zip(ids.flat, additionVector.flat): vector.flat[id] += value
def _putAddPy(vector, ids, additionVector, mask = False): additionVector = numerix.array(additionVector) if numerix.sometrue(mask): if len(vector.shape) < len(additionVector.shape): for j in range(vector.shape[0]): for id, value, masked in zip(ids.flat, additionVector[j].flat, mask.flat): if not masked: vector[j].flat[id] += value else: for id, value, masked in zip(ids.flat, additionVector.flat, mask.flat): if not masked: vector.flat[id] += value else: if len(vector.shape) < len(additionVector.shape): for j in range(vector.shape[0]): for id, value in zip(ids.flat, additionVector[j].flat): vector[j].flat[id] += value else: for id, value in zip(ids.flat, additionVector.flat): vector.flat[id] += value