Skip to content

Commit e2da2e0

Browse files
fixing case when input array is too small
1 parent ee12d9c commit e2da2e0

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

dpnp/backend/extensions/statistics/kth_element1d.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,17 @@ struct KthElementF
278278
{
279279
uint32_t items_to_sort = 127;
280280
uint32_t limit = 4 * (items_to_sort + 1);
281-
uint32_t iterations =
282-
std::ceil(-std::log(double(state.n) / limit) / std::log(0.536)) + 1;
283-
// Ensure iterations are odd so the final result is always stored in
284-
// 'partitioned'
285-
iterations += 1 - iterations % 2;
281+
282+
uint32_t iterations = 1;
283+
284+
if (state.n > limit) {
285+
iterations = std::ceil(
286+
-std::log(double(state.n) / limit) / std::log(0.536)) + 1;
287+
288+
// Ensure iterations are odd so the final result is always stored in
289+
// 'partitioned'
290+
iterations += 1 - iterations % 2;
291+
}
286292

287293
auto prev = run_pick_pivot(exec_q, const_cast<T *>(in), partitioned, k,
288294
state, items_to_sort, limit, depends);

dpnp/dpnp_utils/dpnp_utils_statistics.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ def dpnp_cov(
194194

195195

196196
def native_median(a):
197-
198197
partitioned = dpnp.empty_like(a)
199198
a_usm = dpnp.get_usm_ndarray(a)
200199
partitioned_usm = dpnp.get_usm_ndarray(partitioned)

0 commit comments

Comments
 (0)