





'''simple docstring'''


from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

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







def    _lowerCamelCase  (__lowerCamelCase  :     Vector					,  __lowerCamelCase  :     Vector     )   ->    VectorOut:
			return np.sqrt(np.sum((np.asarray(__lowerCamelCase     ) - np.asarray(__lowerCamelCase     )) ** 2     )     )







def    _lowerCamelCase  (__lowerCamelCase  :     Vector					,  __lowerCamelCase  :     Vector     )   ->    VectorOut:
			return sum((va - va) ** 2 for va, va in zip(__lowerCamelCase					,  __lowerCamelCase     )     ) ** (1 / 2)


if __name__ == "__main__":







		def    _lowerCamelCase  ()   ->    None:
					from timeit import timeit

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




		benchmark()










'''simple docstring'''


from __future__ import annotations

from math import pi







def    _lowerCamelCase  (__lowerCamelCase  :     float					,  __lowerCamelCase  :     float					,  __lowerCamelCase  :     float     )   ->    dict[str, float]:

			if (inductance, frequency, reactance).count(0     ) != 1:
						raise ValueError("One and only one argument must be 0"     )
			if inductance < 0:
						raise ValueError("Inductance cannot be negative"     )
			if frequency < 0:
						raise ValueError("Frequency cannot be negative"     )
			if reactance < 0:
						raise ValueError("Inductive reactance cannot be negative"     )
			if inductance == 0:
						return {"inductance": reactance / (2 * pi * frequency)}
			elif frequency == 0:
						return {"frequency": reactance / (2 * pi * inductance)}
			elif reactance == 0:
						return {"reactance": 2 * pi * frequency * inductance}
			else:
						raise ValueError("Exactly one argument must be 0"     )


if __name__ == "__main__":
		import doctest

		doctest.testmod()



