
from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

_UpperCAmelCase					: Union[str, Any]      =       typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
_UpperCAmelCase					: Tuple      =       typing.Union[np.floataa, int, float]  # noqa: UP007


def       A       (					lowercase    ,       lowercase )   ->  VectorOut:
		'''simple docstring'''

		return np.sqrt(np.sum((np.asarray(lowercase ) - np.asarray(lowercase )) ** 2 ) )


def       A       (					lowercase    ,       lowercase )   ->  VectorOut:
		'''simple docstring'''

		return sum((va - va) ** 2 for va, va in zip(lowercase    ,       lowercase ) ) ** (1 / 2)


if __name__ == "__main__":


					def       A       (					)   ->  None:
							'''simple docstring'''

							from timeit import timeit

							print('Without Numpy' )
							print(
							    timeit(
							        'euclidean_distance_no_np([1, 2, 3], [4, 5, 6])'    ,       number=10_000    ,       globals=globals()    ,       ) )
							print('With Numpy' )
							print(
							    timeit(
							        'euclidean_distance([1, 2, 3], [4, 5, 6])'    ,       number=10_000    ,       globals=globals()    ,       ) )


					benchmark()


def       A       (					lowercase )   ->  str:
		'''simple docstring'''

		return " ".join(
		    ''.join(word[::-1] ) if len(lowercase ) > 4 else word for word in sentence.split() )


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					print(reverse_long_words("Hey wollef sroirraw"))
