"""simple docstring"""





def 				a_     (      _lowerCAmelCase  : List[Any]   , _lowerCAmelCase  : Tuple   , _lowerCAmelCase  : str     ):





       '''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(A__   , A__     ):
              raise Exception('Years to repay must be an integer > 0'     )

       # Yearly rate is divided by 12 to get monthly rate
       lowercase__			:		Union[str, Any]       =	rate_per_annum / 12

       # Years to repay is multiplied by 12 to get number of payments as payment is monthly
       lowercase__			:		Optional[int]       =	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()








from ...utils import is_torch_available, is_transformers_available


if is_transformers_available() and is_torch_available():
    from .pipeline_vq_diffusion import LearnedClassifierFreeSamplingEmbeddings, VQDiffusionPipeline


