Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 1 addition & 17 deletions numba/core/typing/arraydecl.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,23 +280,7 @@ def resolve_T(self, ary):
retty = ary.copy(layout=layout)
return retty

def resolve_real(self, ary):
return self._resolve_real_imag(ary, attr='real')

def resolve_imag(self, ary):
return self._resolve_real_imag(ary, attr='imag')

def _resolve_real_imag(self, ary, attr):
if ary.dtype in types.complex_domain:
return ary.copy(dtype=ary.dtype.underlying_float, layout='A')
elif ary.dtype in types.number_domain:
res = ary.copy(dtype=ary.dtype)
if attr == 'imag':
res = res.copy(readonly=True)
return res
else:
msg = "cannot access .{} of array of {}"
raise TypingError(msg.format(attr, ary.dtype))
# NOTE: .imag and .real are implemented with @overload_attribute

@bound_function("array.transpose")
def resolve_transpose(self, ary, args, kws):
Expand Down
53 changes: 0 additions & 53 deletions numba/core/typing/npydecl.py
Original file line number Diff line number Diff line change
Expand Up @@ -530,59 +530,6 @@ def typer(object, dtype=None):

return typer


@glue_typing(np.empty)
@glue_typing(np.zeros)
@glue_typing(np.ones)
class NdConstructor(CallableTemplate):
"""
Typing template for np.empty(), .zeros(), .ones().
"""

def generic(self):
def typer(shape, dtype=None):
if dtype is None:
nb_dtype = types.double
else:
nb_dtype = parse_dtype(dtype)

ndim = parse_shape(shape)
if nb_dtype is not None and ndim is not None:
return types.Array(dtype=nb_dtype, ndim=ndim, layout='C')

return typer


@glue_typing(np.empty_like)
@glue_typing(np.zeros_like)
@glue_typing(np.ones_like)
class NdConstructorLike(CallableTemplate):
"""
Typing template for np.empty_like(), .zeros_like(), .ones_like().
"""

def generic(self):
"""
np.empty_like(array) -> empty array of the same shape and layout
np.empty_like(scalar) -> empty 0-d array of the scalar type
"""
def typer(arg, dtype=None):
if dtype is not None:
nb_dtype = parse_dtype(dtype)
elif isinstance(arg, types.Array):
nb_dtype = arg.dtype
else:
nb_dtype = arg
if nb_dtype is not None:
if isinstance(arg, types.Array):
layout = arg.layout if arg.layout != 'A' else 'C'
return arg.copy(dtype=nb_dtype, layout=layout, readonly=False)
else:
return types.Array(nb_dtype, 0, 'C')

return typer


@glue_typing(np.full)
class NdFull(CallableTemplate):

Expand Down
Loading