





'''simple docstring'''



from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

__magic_name__   :						int    =			typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
__magic_name__   :						List[Any]    =			typing.Union[np.floataa, int, float]  # noqa: UP007




def 				snake_case_      (		SCREAMING_SNAKE_CASE__					,	SCREAMING_SNAKE_CASE__       ):







  '''simple docstring'''



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




def 				snake_case_      (		SCREAMING_SNAKE_CASE__					,	SCREAMING_SNAKE_CASE__       ):







  '''simple docstring'''



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


if __name__ == "__main__":




 def 				snake_case_      (		):







   '''simple docstring'''



   from timeit import timeit

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




 benchmark()









'''simple docstring'''



from __future__ import annotations

import numpy as np




def 				snake_case_      (		SCREAMING_SNAKE_CASE__       ):







  '''simple docstring'''



  return np.maximum(0					,	SCREAMING_SNAKE_CASE__       )


if __name__ == "__main__":
 print(np.array(relu([-1, 0, 5])))  # --> [0, 0, 5]


