def vectorized_function(*args, **kwargs): if len(args) > 0 and isinstance(args[0], program.Tape.Register): instructions_base.set_global_vector_size(args[0].size) res = function(*args, **kwargs) instructions_base.reset_global_vector_size() elif 'size' in kwargs: instructions_base.set_global_vector_size(kwargs['size']) del kwargs['size'] res = function(*args, **kwargs) instructions_base.reset_global_vector_size() else: res = function(*args, **kwargs) return res