Skip to content

out parameter handlibg to desc in algo module #844

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 15, 2021
Merged
Show file tree
Hide file tree
Changes from all 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
60 changes: 45 additions & 15 deletions dpnp/dpnp_algo/dpnp_algo.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -249,12 +249,32 @@ cdef dpnp_DPNPFuncType_to_dtype(size_t type)
"""
Bitwise functions
"""
cpdef dpnp_descriptor dpnp_bitwise_and(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_bitwise_or(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_bitwise_xor(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_bitwise_and(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_bitwise_or(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_bitwise_xor(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_invert(dpnp_descriptor x1)
cpdef dpnp_descriptor dpnp_left_shift(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_right_shift(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_left_shift(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)
cpdef dpnp_descriptor dpnp_right_shift(dpnp_descriptor x1_obj,
dpnp_descriptor x2_obj,
object dtype=*,
dpnp_descriptor out=*,
object where=*)


"""
Expand Down Expand Up @@ -293,17 +313,27 @@ cpdef dpnp_descriptor dpnp_copy(dpnp_descriptor x1)
"""
Mathematical functions
"""
cpdef dpnp_descriptor dpnp_add(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_arctan2(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_divide(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_hypot(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_maximum(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_minimum(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_multiply(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_add(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_arctan2(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_divide(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_hypot(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_maximum(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_minimum(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_multiply(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_negative(dpnp_descriptor array1)
cpdef dpnp_descriptor dpnp_power(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_remainder(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_subtract(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
cpdef dpnp_descriptor dpnp_power(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_remainder(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)
cpdef dpnp_descriptor dpnp_subtract(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
dpnp_descriptor out=*, object where=*)


"""
Expand Down
16 changes: 12 additions & 4 deletions dpnp/dpnp_algo/dpnp_algo.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ cdef utils.dpnp_descriptor call_fptr_2in_1out(DPNPFuncName fptr_name,
utils.dpnp_descriptor x1_obj,
utils.dpnp_descriptor x2_obj,
object dtype=None,
dparray out=None,
utils.dpnp_descriptor out=None,
object where=True,
func_name=None):

Expand Down Expand Up @@ -330,11 +330,19 @@ cdef utils.dpnp_descriptor call_fptr_2in_1out(DPNPFuncName fptr_name,
if out.shape != result_shape:
utils.checker_throw_value_error(func_name, 'out.shape', out.shape, result_shape)

result = dpnp_descriptor(out)
result = out

""" Call FPTR function """
cdef fptr_2in_1out_t func = <fptr_2in_1out_t > kernel_data.ptr
func(result.get_data(), x1_obj.get_data(), x1_obj.size, x1_shape.data(), x1_shape.size(),
x2_obj.get_data(), x2_obj.size, x2_shape.data(), x2_shape.size(), NULL)
func(result.get_data(),
x1_obj.get_data(),
x1_obj.size,
x1_shape.data(),
x1_shape.size(),
x2_obj.get_data(),
x2_obj.size,
x2_shape.data(),
x2_shape.size(),
NULL)

return result
9 changes: 4 additions & 5 deletions dpnp/dpnp_algo/dpnp_algo_arraycreation.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,6 @@ cpdef object dpnp_logspace(start, stop, num, endpoint, base, dtype, axis):


cpdef list dpnp_meshgrid(xi, copy, sparse, indexing):
cdef dparray res_item

input_count = len(xi)

# simple case
Expand Down Expand Up @@ -253,14 +251,15 @@ cpdef list dpnp_meshgrid(xi, copy, sparse, indexing):

shape = tuple(shape_list)

cdef utils.dpnp_descriptor res_item
result = []
for i in range(input_count):
res_item = utils_py.create_output_descriptor_py(shape, xi[i].dtype, None).get_pyobj()
res_item = utils_py.create_output_descriptor_py(shape, xi[i].dtype, None)

for j in range(res_item.size):
res_item[j] = xi[i][(j // steps[i]) % xi[i].size]
res_item.get_pyobj()[j] = xi[i][(j // steps[i]) % xi[i].size]

result.append(res_item)
result.append(res_item.get_pyobj())

return result

Expand Down
32 changes: 26 additions & 6 deletions dpnp/dpnp_algo/dpnp_algo_bitwise.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -44,24 +44,44 @@ __all__ += [
]


cpdef utils.dpnp_descriptor dpnp_bitwise_and(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
cpdef utils.dpnp_descriptor dpnp_bitwise_and(utils.dpnp_descriptor x1_obj,
utils.dpnp_descriptor x2_obj,
object dtype=None,
utils.dpnp_descriptor out=None,
object where=True):
return call_fptr_2in_1out(DPNP_FN_BITWISE_AND, x1_obj, x2_obj, dtype=dtype, out=out, where=where)


cpdef utils.dpnp_descriptor dpnp_bitwise_or(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
cpdef utils.dpnp_descriptor dpnp_bitwise_or(utils.dpnp_descriptor x1_obj,
utils.dpnp_descriptor x2_obj,
object dtype=None,
utils.dpnp_descriptor out=None,
object where=True):
return call_fptr_2in_1out(DPNP_FN_BITWISE_OR, x1_obj, x2_obj, dtype=dtype, out=out, where=where)


cpdef utils.dpnp_descriptor dpnp_bitwise_xor(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
cpdef utils.dpnp_descriptor dpnp_bitwise_xor(utils.dpnp_descriptor x1_obj,
utils.dpnp_descriptor x2_obj,
object dtype=None,
utils.dpnp_descriptor out=None,
object where=True):
return call_fptr_2in_1out(DPNP_FN_BITWISE_XOR, x1_obj, x2_obj, dtype=dtype, out=out, where=where)


cpdef utils.dpnp_descriptor dpnp_invert(dpnp_descriptor arr):
cpdef utils.dpnp_descriptor dpnp_invert(utils.dpnp_descriptor arr):
return call_fptr_1in_1out(DPNP_FN_INVERT, arr, arr.shape)


cpdef utils.dpnp_descriptor dpnp_left_shift(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
cpdef utils.dpnp_descriptor dpnp_left_shift(utils.dpnp_descriptor x1_obj,
utils.dpnp_descriptor x2_obj,
object dtype=None,
utils.dpnp_descriptor out=None,
object where=True):
return call_fptr_2in_1out(DPNP_FN_LEFT_SHIFT, x1_obj, x2_obj, dtype=dtype, out=out, where=where)

cpdef utils.dpnp_descriptor dpnp_right_shift(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
cpdef utils.dpnp_descriptor dpnp_right_shift(utils.dpnp_descriptor x1_obj,
utils.dpnp_descriptor x2_obj,
object dtype=None,
utils.dpnp_descriptor out=None,
object where=True):
return call_fptr_2in_1out(DPNP_FN_RIGHT_SHIFT, x1_obj, x2_obj, dtype=dtype, out=out, where=where)
Loading