Skip to content

Commit 36d3504

Browse files
authored
dpnp.min() simplify plus moved to desc (#848)
1 parent 0b63a38 commit 36d3504

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

dpnp/dpnp_algo/dpnp_algo.pxd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ Statistics functions
348348
"""
349349
cpdef dpnp_descriptor dpnp_cov(dpnp_descriptor array1)
350350
cpdef dparray dpnp_mean(dparray a, axis)
351-
cpdef dparray dpnp_min(dparray a, axis)
351+
cpdef dpnp_descriptor dpnp_min(dpnp_descriptor a, axis)
352352

353353

354354
"""

dpnp/dpnp_algo/dpnp_algo_statistics.pyx

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -337,14 +337,13 @@ cpdef dparray dpnp_median(utils.dpnp_descriptor array1):
337337
return result
338338

339339

340-
cpdef dparray _dpnp_min(dparray input, _axis_, output_shape):
340+
cpdef utils.dpnp_descriptor _dpnp_min(utils.dpnp_descriptor input, _axis_, shape_type_c shape_output):
341341
cdef shape_type_c input_shape = input.shape
342342
cdef DPNPFuncType param1_type = dpnp_dtype_to_DPNPFuncType(input.dtype)
343343

344344
cdef DPNPFuncData kernel_data = get_dpnp_function_ptr(DPNP_FN_MIN, param1_type, param1_type)
345345

346-
result_type = dpnp_DPNPFuncType_to_dtype(< size_t > kernel_data.return_type)
347-
cdef dparray result = dparray(output_shape, dtype=result_type)
346+
cdef utils.dpnp_descriptor result = utils.create_output_descriptor(shape_output, kernel_data.return_type, None)
348347

349348
cdef custom_statistic_1in_1out_func_ptr_t func = <custom_statistic_1in_1out_func_ptr_t > kernel_data.ptr
350349
cdef shape_type_c axis
@@ -356,22 +355,27 @@ cpdef dparray _dpnp_min(dparray input, _axis_, output_shape):
356355
axis_.reserve(len(axis))
357356
for shape_it in axis:
358357
if shape_it < 0:
359-
raise ValueError("DPNP dparray::__init__(): Negative values in 'shape' are not allowed")
358+
raise ValueError("DPNP algo::_dpnp_min(): Negative values in 'shape' are not allowed")
360359
axis_.push_back(shape_it)
361360
axis_size = len(axis)
362361

363-
func(input.get_data(), result.get_data(), < size_t * > input_shape.data(), input.ndim, < size_t * > axis_.data(), axis_size)
362+
func(input.get_data(),
363+
result.get_data(),
364+
< size_t * > input_shape.data(),
365+
input.ndim,
366+
< size_t * > axis_.data(),
367+
axis_size)
364368

365-
dpnp_array = dpnp.array(result, dtype=input.dtype)
366-
dpnp_result_array = dpnp_array.reshape(output_shape)
367-
return dpnp_result_array
369+
return result
368370

369371

370-
cpdef dparray dpnp_min(dparray input, axis):
372+
cpdef utils.dpnp_descriptor dpnp_min(utils.dpnp_descriptor input, axis):
371373
cdef shape_type_c shape_input = input.shape
374+
cdef shape_type_c shape_output
375+
372376
if axis is None:
373377
axis_ = axis
374-
output_shape = 1
378+
shape_output = (1,)
375379
else:
376380
if isinstance(axis, int):
377381
if axis < 0:
@@ -387,13 +391,11 @@ cpdef dparray dpnp_min(dparray input, axis):
387391
_axis_.append(axis[i])
388392
axis_ = tuple(_axis_)
389393

390-
output_shape = dparray(len(shape_input) - len(axis_), dtype=numpy.int64)
391-
ind = 0
392394
for id, shape_axis in enumerate(shape_input):
393395
if id not in axis_:
394-
output_shape[ind] = shape_axis
395-
ind += 1
396-
return _dpnp_min(input, axis_, output_shape)
396+
shape_output.push_back(shape_axis)
397+
398+
return _dpnp_min(input, axis_, shape_output)
397399

398400

399401
cpdef dparray dpnp_nanvar(utils.dpnp_descriptor arr, ddof):

dpnp/dpnp_iface_statistics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ def min(x1, axis=None, out=None, keepdims=False, initial=None, where=True):
525525
elif where is not True:
526526
pass
527527
else:
528-
result_obj = dpnp_min(x1, axis=axis)
528+
result_obj = dpnp_min(x1_desc, axis).get_pyobj()
529529
result = dpnp.convert_single_elem_array_to_scalar(result_obj)
530530

531531
return result

0 commit comments

Comments
 (0)