def __init__(self, dmm, fe_type): int_type = fe_type.yield_type members = [('iter', types.EphemeralPointer(int_type)), ('stop', int_type), ('step', int_type), ('count', types.EphemeralPointer(int_type))] super(RangeIteratorType, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): array_types = fe_type.arrays ndim = fe_type.ndim shape_len = ndim if fe_type.need_shaped_indexing else 1 members = [ ('exhausted', types.EphemeralPointer(types.boolean)), ('arrays', types.Tuple(array_types)), # The iterator's main shape and indices ('shape', types.UniTuple(types.intp, shape_len)), ('indices', types.EphemeralArray(types.intp, shape_len)), ] # Indexing state for the various sub-iterators # XXX use a tuple instead? for i, sub in enumerate(fe_type.indexers): kind, start_dim, end_dim, _ = sub member_name = 'index%d' % i if kind == 'flat': # A single index into the flattened array members.append( (member_name, types.EphemeralPointer(types.intp))) elif kind in ('scalar', 'indexed', '0d'): # Nothing required pass else: assert 0 # Slots holding values of the scalar args # XXX use a tuple instead? for i, ty in enumerate(fe_type.arrays): if not isinstance(ty, types.Array): member_name = 'scalar%d' % i members.append((member_name, types.EphemeralPointer(ty))) super(NdIter, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): int_type = fe_type.yield_type members = [ ("iter", types.EphemeralPointer(int_type)), ("stop", int_type), ("step", int_type), ("count", types.EphemeralPointer(int_type)), ] super(RangeIteratorType, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): members = [('index', types.EphemeralPointer(types.intp)), ( 'tuple', fe_type.container, )] super(UniTupleIter, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): members = [ ('size', types.intp), # the size of the iteration space ('parent', fe_type.parent), # the parent list ('index', types.EphemeralPointer(types.intp)), # current index ] super(ListIterModel, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): ndim = fe_type.ndim members = [('shape', types.UniTuple(types.intp, ndim)), ('indices', types.EphemeralArray(types.intp, ndim)), ('exhausted', types.EphemeralPointer(types.boolean)), ] super(NdIndexModel, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): members = [ ("count", types.EphemeralPointer(types.intp)), ("iter", fe_type.source_type), ] super(EnumerateType, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): # We use an unsigned index to avoid the cost of negative index tests. members = [ ("index", types.EphemeralPointer(types.uintp)), ("array", fe_type.array_type), ] super(ArrayIterator, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): payload_type = types.ListPayload(fe_type.container) members = [ # The meminfo data points to a ListPayload (shared with the # original list object) ('meminfo', types.MemInfoPointer(payload_type)), ('index', types.EphemeralPointer(types.intp)), ] super(ListIterModel, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): members = [ ("index", types.EphemeralPointer(types.intp)), ( "tuple", fe_type.container, ), ] super(UniTupleIter, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): payload_type = types.SetPayload(fe_type.container) members = [ # The meminfo data points to a SetPayload (shared with the # original set object) ('meminfo', types.MemInfoPointer(payload_type)), # The index into the entries table ('index', types.EphemeralPointer(types.intp)), ] super(SetIterModel, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): array_type = fe_type.array_type dtype = array_type.dtype ndim = array_type.ndim members = [('array', array_type), ('pointers', types.EphemeralArray(types.CPointer(dtype), ndim)), ('indices', types.EphemeralArray(types.intp, ndim)), ('exhausted', types.EphemeralPointer(types.boolean)), ] super(FlatIter, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type, need_indices): assert fe_type.array_type.layout == 'C' array_type = fe_type.array_type dtype = array_type.dtype ndim = array_type.ndim members = [('array', array_type), ('stride', types.intp), ('index', types.EphemeralPointer(types.intp)), ] if need_indices: # For ndenumerate() members.append(('indices', types.EphemeralArray(types.intp, ndim))) super(CContiguousFlatIter, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): members = [('count', types.EphemeralPointer(types.intp)), ('iter', fe_type.source_type)] super(EnumerateType, self).__init__(dmm, fe_type, members)
def __init__(self, dmm, fe_type): members = [('index', types.EphemeralPointer(types.uintp)), ('buffer', fe_type.buffer_type)] super(BufferPointerIteratorModel, self).__init__(dmm, fe_type, members)