
'''simple docstring'''
def        A_     (						__SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  float			,     __SCREAMING_SNAKE_CASE						:  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(__SCREAMING_SNAKE_CASE			,     __SCREAMING_SNAKE_CASE ):
    raise Exception("""Years to repay must be an integer > 0""" )

  # Yearly rate is divided by 12 to get monthly rate
  __A		:     Dict												=		rate_per_annum / 12

  # Years to repay is multiplied by 12 to get number of payments as payment is monthly
  __A		:     Dict												=		years_to_repay * 12

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





'''simple docstring'''
A__   :		List[Any] 		=[
    'Audio',
    'Array2D',
    'Array3D',
    'Array4D',
    'Array5D',
    'ClassLabel',
    'Features',
    'Sequence',
    'Value',
    'Image',
    'Translation',
    'TranslationVariableLanguages',
]
from .audio import Audio
from .features import ArrayaD, ArrayaD, ArrayaD, ArrayaD, ClassLabel, Features, Sequence, Value
from .image import Image
from .translation import Translation, TranslationVariableLanguages



