Source code for ewoksndreg.math.indices
from typing import Union
[docs]
def get_positive_index(index: Union[int, float], n: int) -> int:
if isinstance(index, float):
if 0 <= index <= 1:
index = int((n - 1) * index + 0.5)
else:
raise ValueError(f"Index must be between -{n} and {n-1} or 0.0 and 1.0")
if -n <= index < n:
if index < 0:
index += n
return index
else:
raise ValueError(f"Index must be between -{n} and {n-1} or 0.0 and 1.0")