

'''simple docstring'''
def 	UpperCamelCase   (       lowercase_						:    float     ,					lowercase_						:    float     ,					lowercase_						:    int	)		->	float:




  '''simple docstring'''



  if principal <= 0:
    raise Exception('''Principal borrowed must be > 0'''	)
  if rate_per_annum < 0:
    raise Exception('''Rate of interest must be >= 0'''	)
  if years_to_repay <= 0 or not isinstance(lowercase_     ,					lowercase_	):
    raise Exception('''Years to repay must be an integer > 0'''	)

  # Yearly rate is divided by 12 to get monthly rate
  lowercase									=rate_per_annum / 1_2

  # Years to repay is multiplied by 12 to get number of payments as payment is monthly
  lowercase									=years_to_repay * 1_2

  return (
      principal
      * rate_per_month
      * (1 + rate_per_month) ** number_of_payments
      / ((1 + rate_per_month) ** number_of_payments - 1)
  )


if __name__ == "__main__":
     import doctest

     doctest.testmod()




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_flax_available, is_torch_available


_SCREAMING_SNAKE_CASE     :					Optional[int]      =       {"configuration_speech_encoder_decoder": ["SpeechEncoderDecoderConfig"]}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _SCREAMING_SNAKE_CASE     :					Optional[int]      =       ["SpeechEncoderDecoderModel"]

try:
 if not is_flax_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _SCREAMING_SNAKE_CASE     :					Dict      =       ["FlaxSpeechEncoderDecoderModel"]

if TYPE_CHECKING:
 from .configuration_speech_encoder_decoder import SpeechEncoderDecoderConfig

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_speech_encoder_decoder import SpeechEncoderDecoderModel

 try:
  if not is_flax_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_flax_speech_encoder_decoder import FlaxSpeechEncoderDecoderModel

else:
 import sys

 _SCREAMING_SNAKE_CASE     :					List[Any]      =       _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)




