Skip to content

Commit a0e28a0

Browse files
authored
out parameter handlibg to desc in algo module (#844)
* out parameter handlibg to desc in algo module
1 parent d6f4104 commit a0e28a0

8 files changed

+177
-67
lines changed

dpnp/dpnp_algo/dpnp_algo.pxd

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,32 @@ cdef dpnp_DPNPFuncType_to_dtype(size_t type)
249249
"""
250250
Bitwise functions
251251
"""
252-
cpdef dpnp_descriptor dpnp_bitwise_and(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
253-
cpdef dpnp_descriptor dpnp_bitwise_or(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
254-
cpdef dpnp_descriptor dpnp_bitwise_xor(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
252+
cpdef dpnp_descriptor dpnp_bitwise_and(dpnp_descriptor x1_obj,
253+
dpnp_descriptor x2_obj,
254+
object dtype=*,
255+
dpnp_descriptor out=*,
256+
object where=*)
257+
cpdef dpnp_descriptor dpnp_bitwise_or(dpnp_descriptor x1_obj,
258+
dpnp_descriptor x2_obj,
259+
object dtype=*,
260+
dpnp_descriptor out=*,
261+
object where=*)
262+
cpdef dpnp_descriptor dpnp_bitwise_xor(dpnp_descriptor x1_obj,
263+
dpnp_descriptor x2_obj,
264+
object dtype=*,
265+
dpnp_descriptor out=*,
266+
object where=*)
255267
cpdef dpnp_descriptor dpnp_invert(dpnp_descriptor x1)
256-
cpdef dpnp_descriptor dpnp_left_shift(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
257-
cpdef dpnp_descriptor dpnp_right_shift(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
268+
cpdef dpnp_descriptor dpnp_left_shift(dpnp_descriptor x1_obj,
269+
dpnp_descriptor x2_obj,
270+
object dtype=*,
271+
dpnp_descriptor out=*,
272+
object where=*)
273+
cpdef dpnp_descriptor dpnp_right_shift(dpnp_descriptor x1_obj,
274+
dpnp_descriptor x2_obj,
275+
object dtype=*,
276+
dpnp_descriptor out=*,
277+
object where=*)
258278

259279

260280
"""
@@ -293,17 +313,27 @@ cpdef dpnp_descriptor dpnp_copy(dpnp_descriptor x1)
293313
"""
294314
Mathematical functions
295315
"""
296-
cpdef dpnp_descriptor dpnp_add(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
297-
cpdef dpnp_descriptor dpnp_arctan2(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*, dparray out=*, object where=*)
298-
cpdef dpnp_descriptor dpnp_divide(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
299-
cpdef dpnp_descriptor dpnp_hypot(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
300-
cpdef dpnp_descriptor dpnp_maximum(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
301-
cpdef dpnp_descriptor dpnp_minimum(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
302-
cpdef dpnp_descriptor dpnp_multiply(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
316+
cpdef dpnp_descriptor dpnp_add(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
317+
dpnp_descriptor out=*, object where=*)
318+
cpdef dpnp_descriptor dpnp_arctan2(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
319+
dpnp_descriptor out=*, object where=*)
320+
cpdef dpnp_descriptor dpnp_divide(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
321+
dpnp_descriptor out=*, object where=*)
322+
cpdef dpnp_descriptor dpnp_hypot(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
323+
dpnp_descriptor out=*, object where=*)
324+
cpdef dpnp_descriptor dpnp_maximum(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
325+
dpnp_descriptor out=*, object where=*)
326+
cpdef dpnp_descriptor dpnp_minimum(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
327+
dpnp_descriptor out=*, object where=*)
328+
cpdef dpnp_descriptor dpnp_multiply(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
329+
dpnp_descriptor out=*, object where=*)
303330
cpdef dpnp_descriptor dpnp_negative(dpnp_descriptor array1)
304-
cpdef dpnp_descriptor dpnp_power(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*, dparray out=*, object where=*)
305-
cpdef dpnp_descriptor dpnp_remainder(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
306-
cpdef dpnp_descriptor dpnp_subtract(object x1_obj, object x2_obj, object dtype=*, dparray out=*, object where=*)
331+
cpdef dpnp_descriptor dpnp_power(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
332+
dpnp_descriptor out=*, object where=*)
333+
cpdef dpnp_descriptor dpnp_remainder(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
334+
dpnp_descriptor out=*, object where=*)
335+
cpdef dpnp_descriptor dpnp_subtract(dpnp_descriptor x1_obj, dpnp_descriptor x2_obj, object dtype=*,
336+
dpnp_descriptor out=*, object where=*)
307337

308338

309339
"""

dpnp/dpnp_algo/dpnp_algo.pyx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ cdef utils.dpnp_descriptor call_fptr_2in_1out(DPNPFuncName fptr_name,
302302
utils.dpnp_descriptor x1_obj,
303303
utils.dpnp_descriptor x2_obj,
304304
object dtype=None,
305-
dparray out=None,
305+
utils.dpnp_descriptor out=None,
306306
object where=True,
307307
func_name=None):
308308

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

333-
result = dpnp_descriptor(out)
333+
result = out
334334

335335
""" Call FPTR function """
336336
cdef fptr_2in_1out_t func = <fptr_2in_1out_t > kernel_data.ptr
337-
func(result.get_data(), x1_obj.get_data(), x1_obj.size, x1_shape.data(), x1_shape.size(),
338-
x2_obj.get_data(), x2_obj.size, x2_shape.data(), x2_shape.size(), NULL)
337+
func(result.get_data(),
338+
x1_obj.get_data(),
339+
x1_obj.size,
340+
x1_shape.data(),
341+
x1_shape.size(),
342+
x2_obj.get_data(),
343+
x2_obj.size,
344+
x2_shape.data(),
345+
x2_shape.size(),
346+
NULL)
339347

340348
return result

dpnp/dpnp_algo/dpnp_algo_arraycreation.pyx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,6 @@ cpdef object dpnp_logspace(start, stop, num, endpoint, base, dtype, axis):
218218

219219

220220
cpdef list dpnp_meshgrid(xi, copy, sparse, indexing):
221-
cdef dparray res_item
222-
223221
input_count = len(xi)
224222

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

254252
shape = tuple(shape_list)
255253

254+
cdef utils.dpnp_descriptor res_item
256255
result = []
257256
for i in range(input_count):
258-
res_item = utils_py.create_output_descriptor_py(shape, xi[i].dtype, None).get_pyobj()
257+
res_item = utils_py.create_output_descriptor_py(shape, xi[i].dtype, None)
259258

260259
for j in range(res_item.size):
261-
res_item[j] = xi[i][(j // steps[i]) % xi[i].size]
260+
res_item.get_pyobj()[j] = xi[i][(j // steps[i]) % xi[i].size]
262261

263-
result.append(res_item)
262+
result.append(res_item.get_pyobj())
264263

265264
return result
266265

dpnp/dpnp_algo/dpnp_algo_bitwise.pyx

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,24 +44,44 @@ __all__ += [
4444
]
4545

4646

47-
cpdef utils.dpnp_descriptor dpnp_bitwise_and(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
47+
cpdef utils.dpnp_descriptor dpnp_bitwise_and(utils.dpnp_descriptor x1_obj,
48+
utils.dpnp_descriptor x2_obj,
49+
object dtype=None,
50+
utils.dpnp_descriptor out=None,
51+
object where=True):
4852
return call_fptr_2in_1out(DPNP_FN_BITWISE_AND, x1_obj, x2_obj, dtype=dtype, out=out, where=where)
4953

5054

51-
cpdef utils.dpnp_descriptor dpnp_bitwise_or(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
55+
cpdef utils.dpnp_descriptor dpnp_bitwise_or(utils.dpnp_descriptor x1_obj,
56+
utils.dpnp_descriptor x2_obj,
57+
object dtype=None,
58+
utils.dpnp_descriptor out=None,
59+
object where=True):
5260
return call_fptr_2in_1out(DPNP_FN_BITWISE_OR, x1_obj, x2_obj, dtype=dtype, out=out, where=where)
5361

5462

55-
cpdef utils.dpnp_descriptor dpnp_bitwise_xor(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
63+
cpdef utils.dpnp_descriptor dpnp_bitwise_xor(utils.dpnp_descriptor x1_obj,
64+
utils.dpnp_descriptor x2_obj,
65+
object dtype=None,
66+
utils.dpnp_descriptor out=None,
67+
object where=True):
5668
return call_fptr_2in_1out(DPNP_FN_BITWISE_XOR, x1_obj, x2_obj, dtype=dtype, out=out, where=where)
5769

5870

59-
cpdef utils.dpnp_descriptor dpnp_invert(dpnp_descriptor arr):
71+
cpdef utils.dpnp_descriptor dpnp_invert(utils.dpnp_descriptor arr):
6072
return call_fptr_1in_1out(DPNP_FN_INVERT, arr, arr.shape)
6173

6274

63-
cpdef utils.dpnp_descriptor dpnp_left_shift(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
75+
cpdef utils.dpnp_descriptor dpnp_left_shift(utils.dpnp_descriptor x1_obj,
76+
utils.dpnp_descriptor x2_obj,
77+
object dtype=None,
78+
utils.dpnp_descriptor out=None,
79+
object where=True):
6480
return call_fptr_2in_1out(DPNP_FN_LEFT_SHIFT, x1_obj, x2_obj, dtype=dtype, out=out, where=where)
6581

66-
cpdef utils.dpnp_descriptor dpnp_right_shift(object x1_obj, object x2_obj, object dtype=None, dparray out=None, object where=True):
82+
cpdef utils.dpnp_descriptor dpnp_right_shift(utils.dpnp_descriptor x1_obj,
83+
utils.dpnp_descriptor x2_obj,
84+
object dtype=None,
85+
utils.dpnp_descriptor out=None,
86+
object where=True):
6787
return call_fptr_2in_1out(DPNP_FN_RIGHT_SHIFT, x1_obj, x2_obj, dtype=dtype, out=out, where=where)

0 commit comments

Comments
 (0)