



from __future__ import annotations

from math import pow, sqrt


def 			UpperCamelCase(  __UpperCamelCase							:		float     ,__UpperCamelCase							:		float     ,__UpperCamelCase							:		float ):
		if (resistance, reactance, impedance).count(0 ) != 1:
				raise ValueError('''One and only one argument must be 0''' )
		if resistance == 0:
				return {"resistance": sqrt(pow(__UpperCamelCase     ,2 ) - pow(__UpperCamelCase     ,2 ) )}
		elif reactance == 0:
				return {"reactance": sqrt(pow(__UpperCamelCase     ,2 ) - pow(__UpperCamelCase     ,2 ) )}
		elif impedance == 0:
				return {"impedance": sqrt(pow(__UpperCamelCase     ,2 ) + pow(__UpperCamelCase     ,2 ) )}
		else:
				raise ValueError('''Exactly one argument must be 0''' )


if __name__ == "__main__":
						import doctest

						doctest.testmod()












"""simple docstring"""
from collections.abc import Callable

import numpy as np



def      __lowerCamelCase   (							a_     :		Callable ,   a_     :		float ,   a_     :		float ,   a_     :		float ,   a_     :		float							)			->      np.ndarray:
      __SCREAMING_SNAKE_CASE   :List[Any]						=  int(np.ceil((x_end - xa) / step_size							)							)
      __SCREAMING_SNAKE_CASE   :Optional[Any]						=  np.zeros((n + 1,)							)
      __SCREAMING_SNAKE_CASE   :int						=  ya
      __SCREAMING_SNAKE_CASE   :str						=  xa

      for k in range(a_							):
            __SCREAMING_SNAKE_CASE   :Optional[int]						=  y[k] + step_size * ode_func(a_ ,   y[k]							)
            x += step_size

      return y


if __name__ == "__main__":
  import doctest

  doctest.testmod()