Skip to content

Commit 0dc80dd

Browse files
simplified code to keep sonarcube happy
1 parent 59f74b7 commit 0dc80dd

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

kernel_tuner/util.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -441,14 +441,19 @@ def get_dimension_divisor(divisor, default, params):
441441
if divisor is None:
442442
divisor = params.get(default, 1)
443443

444+
divisor_num = 1
444445
if isinstance(divisor, int):
445-
return divisor
446+
divisor_num = divisor
446447
elif callable(divisor):
447-
return divisor(params)
448+
divisor_num = divisor(params)
448449
elif isinstance(divisor, str):
449-
return int(eval(replace_param_occurrences(divisor, params)))
450+
divisor_num = int(eval(replace_param_occurrences(divisor, params)))
451+
elif np.iterable(divisor):
452+
for div in divisor:
453+
divisor_num *= get_dimension_divisor(div, 1, params)
450454
else:
451-
return np.prod([get_dimension_divisor(s, 1, params) for s in divisor])
455+
raise ValueError("Error: unrecognized type in grid divisor list, should be any of int, str, callable, or iterable")
456+
return divisor_num
452457

453458
divisors = [get_dimension_divisor(d, block_size_names[i], params) for i, d in enumerate(grid_div)]
454459
return tuple(int(np.ceil(float(current_problem_size[i]) / float(d))) for i, d in enumerate(divisors))

0 commit comments

Comments
 (0)