




def    UpperCAmelCase_				( __UpperCAmelCase		:      int     ,     __UpperCAmelCase		:      int				)   ->					str:
      if b == 0:
            return 1
      if (b % 2) == 0:
            return actual_power(__UpperCAmelCase     ,     int(b / 2				)				) * actual_power(__UpperCAmelCase     ,     int(b / 2				)				)
      else:
            return a * actual_power(__UpperCAmelCase     ,     int(b / 2				)				) * actual_power(__UpperCAmelCase     ,     int(b / 2				)				)

def    UpperCAmelCase_				( __UpperCAmelCase		:      int     ,     __UpperCAmelCase		:      int				)   ->					float:
      if b < 0:
            return 1 / actual_power(__UpperCAmelCase     ,     __UpperCAmelCase				)
      return actual_power(__UpperCAmelCase     ,     __UpperCAmelCase				)


if __name__ == "__main__":
   print(power(-2, -3))



"""simple docstring"""


from math import cos, sin, sqrt, tau

from audio_filters.iir_filter import IIRFilter


def    _lowerCamelCase   (     lowerCamelCase__	:							int       ,		lowerCamelCase__	:							int       ,		lowerCamelCase__	:							float = 1 / sqrt(2  )  ):
 lowercase__       :       str				=						tau * frequency / samplerate
 lowercase__       :       Union[str, Any]				=						sin(lowerCamelCase__  )
 lowercase__       :       int				=						cos(lowerCamelCase__  )
 lowercase__       :       Union[str, Any]				=						_sin / (2 * q_factor)

 lowercase__       :       str				=						(1 - _cos) / 2
 lowercase__       :       Optional[Any]				=						1 - _cos

 lowercase__       :       List[Any]				=						1 + alpha
 lowercase__       :       Dict				=						-2 * _cos
 lowercase__       :       List[str]				=						1 - alpha

 lowercase__       :       int				=						IIRFilter(2  )
 filt.set_coefficients([aa, aa, aa]       ,		[ba, ba, ba]  )
 return filt


def    _lowerCamelCase   (     lowerCamelCase__	:							int       ,		lowerCamelCase__	:							int       ,		lowerCamelCase__	:							float = 1 / sqrt(2  )  ):
 lowercase__       :       Optional[int]				=						tau * frequency / samplerate
 lowercase__       :       Any				=						sin(lowerCamelCase__  )
 lowercase__       :       Any				=						cos(lowerCamelCase__  )
 lowercase__       :       Tuple				=						_sin / (2 * q_factor)

 lowercase__       :       Tuple				=						(1 + _cos) / 2
 lowercase__       :       str				=						-1 - _cos

 lowercase__       :       Dict				=						1 + alpha
 lowercase__       :       Dict				=						-2 * _cos
 lowercase__       :       int				=						1 - alpha

 lowercase__       :       str				=						IIRFilter(2  )
 filt.set_coefficients([aa, aa, aa]       ,		[ba, ba, ba]  )
 return filt


def    _lowerCamelCase   (     lowerCamelCase__	:							int       ,		lowerCamelCase__	:							int       ,		lowerCamelCase__	:							float = 1 / sqrt(2  )  ):
 lowercase__       :       Optional[int]				=						tau * frequency / samplerate
 lowercase__       :       str				=						sin(lowerCamelCase__  )
 lowercase__       :       int				=						cos(lowerCamelCase__  )
 lowercase__       :       Dict				=						_sin / (2 * q_factor)

 lowercase__       :       Dict				=						_sin / 2
 lowercase__       :       Union[str, Any]				=						0
 lowercase__       :       int				=						-ba

 lowercase__       :       List[Any]				=						1 + alpha
 lowercase__       :       Tuple				=						-2 * _cos
 lowercase__       :       List[str]				=						1 - alpha

 lowercase__       :       Dict				=						IIRFilter(2  )
 filt.set_coefficients([aa, aa, aa]       ,		[ba, ba, ba]  )
 return filt


def    _lowerCamelCase   (     lowerCamelCase__	:							int       ,		lowerCamelCase__	:							int       ,		lowerCamelCase__	:							float = 1 / sqrt(2  )  ):
 lowercase__       :       str				=						tau * frequency / samplerate
 lowercase__       :       Dict				=						sin(lowerCamelCase__  )
 lowercase__       :       Union[str, Any]				=						cos(lowerCamelCase__  )
 lowercase__       :       Tuple				=						_sin / (2 * q_factor)

 lowercase__       :       List[Any]				=						1 - alpha
 lowercase__       :       Any				=						-2 * _cos
 lowercase__       :       Optional[Any]				=						1 + alpha

 lowercase__       :       List[Any]				=						IIRFilter(2  )
 filt.set_coefficients([ba, ba, ba]       ,		[ba, ba, ba]  )
 return filt


def    _lowerCamelCase   (     lowerCamelCase__	:							int       ,		lowerCamelCase__	:							int       ,		lowerCamelCase__	:							float       ,		lowerCamelCase__	:							float = 1 / sqrt(2  )       ,		):
 lowercase__       :       Tuple				=						tau * frequency / samplerate
 lowercase__       :       str				=						sin(lowerCamelCase__  )
 lowercase__       :       List[str]				=						cos(lowerCamelCase__  )
 lowercase__       :       Optional[int]				=						_sin / (2 * q_factor)
 lowercase__       :       Optional[Any]				=						10 ** (gain_db / 40)

 lowercase__       :       Optional[Any]				=						1 + alpha * big_a
 lowercase__       :       Dict				=						-2 * _cos
 lowercase__       :       Tuple				=						1 - alpha * big_a
 lowercase__       :       List[str]				=						1 + alpha / big_a
 lowercase__       :       List[Any]				=						-2 * _cos
 lowercase__       :       Optional[int]				=						1 - alpha / big_a

 lowercase__       :       Union[str, Any]				=						IIRFilter(2  )
 filt.set_coefficients([aa, aa, aa]       ,		[ba, ba, ba]  )
 return filt


def    _lowerCamelCase   (     lowerCamelCase__	:							int       ,		lowerCamelCase__	:							int       ,		lowerCamelCase__	:							float       ,		lowerCamelCase__	:							float = 1 / sqrt(2  )       ,		):
 lowercase__       :       Optional[int]				=						tau * frequency / samplerate
 lowercase__       :       Dict				=						sin(lowerCamelCase__  )
 lowercase__       :       Union[str, Any]				=						cos(lowerCamelCase__  )
 lowercase__       :       int				=						_sin / (2 * q_factor)
 lowercase__       :       Union[str, Any]				=						10 ** (gain_db / 40)
 lowercase__       :       Dict				=						(big_a + 1) - (big_a - 1) * _cos
 lowercase__       :       Union[str, Any]				=						(big_a + 1) + (big_a - 1) * _cos
 lowercase__       :       List[Any]				=						(big_a - 1) - (big_a + 1) * _cos
 lowercase__       :       Dict				=						(big_a - 1) + (big_a + 1) * _cos
 lowercase__       :       Optional[int]				=						2 * sqrt(lowerCamelCase__  ) * alpha

 lowercase__       :       str				=						big_a * (pmc + aaa)
 lowercase__       :       Optional[Any]				=						2 * big_a * mpc
 lowercase__       :       str				=						big_a * (pmc - aaa)
 lowercase__       :       Dict				=						ppmc + aaa
 lowercase__       :       List[Any]				=						-2 * pmpc
 lowercase__       :       List[Any]				=						ppmc - aaa

 lowercase__       :       Optional[int]				=						IIRFilter(2  )
 filt.set_coefficients([aa, aa, aa]       ,		[ba, ba, ba]  )
 return filt






def    _lowerCamelCase   (     lowerCamelCase__	:							int       ,		lowerCamelCase__	:							int       ,		lowerCamelCase__	:							float       ,		lowerCamelCase__	:							float = 1 / sqrt(2  )       ,		):
 lowercase__       :       int				=						tau * frequency / samplerate
 lowercase__       :       List[Any]				=						sin(lowerCamelCase__  )
 lowercase__       :       List[Any]				=						cos(lowerCamelCase__  )
 lowercase__       :       List[str]				=						_sin / (2 * q_factor)
 lowercase__       :       int				=						10 ** (gain_db / 40)
 lowercase__       :       str				=						(big_a + 1) - (big_a - 1) * _cos
 lowercase__       :       Optional[Any]				=						(big_a + 1) + (big_a - 1) * _cos
 lowercase__       :       Optional[int]				=						(big_a - 1) - (big_a + 1) * _cos
 lowercase__       :       int				=						(big_a - 1) + (big_a + 1) * _cos
 lowercase__       :       Optional[Any]				=						2 * sqrt(lowerCamelCase__  ) * alpha

 lowercase__       :       str				=						big_a * (ppmc + aaa)
 lowercase__       :       Union[str, Any]				=						-2 * big_a * pmpc
 lowercase__       :       List[Any]				=						big_a * (ppmc - aaa)
 lowercase__       :       str				=						pmc + aaa
 lowercase__       :       int				=						2 * mpc
 lowercase__       :       Any				=						pmc - aaa

 lowercase__       :       int				=						IIRFilter(2  )
 filt.set_coefficients([aa, aa, aa]       ,		[ba, ba, ba]  )
 return filt