






"""simple docstring"""



from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

_UpperCamelCase		:  str						=		typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
_UpperCamelCase		:  Tuple						=		typing.Union[np.floataa, int, float]  # noqa: UP007
def 						_SCREAMING_SNAKE_CASE (    __snake_case			:  Union[str, Any]		,					__snake_case			:  List[str]    ):





  '''simple docstring'''





  return np.sqrt(np.sum((np.asarray(lowercase_    ) - np.asarray(lowercase_    )) ** 2    )    )
def 						_SCREAMING_SNAKE_CASE (    __snake_case			:  Union[str, Any]		,					__snake_case			:  List[str]    ):





  '''simple docstring'''





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


if __name__ == "__main__":
    def 						_SCREAMING_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()








from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

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







def SCREAMING_SNAKE_CASE				(       lowercase_ ,				lowercase_						)   ->       VectorOut:



       """simple docstring"""

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







def SCREAMING_SNAKE_CASE				(       lowercase_ ,				lowercase_						)   ->       VectorOut:



       """simple docstring"""

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


if __name__ == "__main__":







  def SCREAMING_SNAKE_CASE				(       )   ->       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()


