"""simple docstring"""


from __future__ import annotations






def 			__UpperCAmelCase    (	lowercase      ,lowercase      ,lowercase						):







  """simple docstring"""
  if days_between_payments <= 0:
    raise ValueError("""days_between_payments must be > 0"""						)
  if daily_interest_rate < 0:
    raise ValueError("""daily_interest_rate must be >= 0"""						)
  if principal <= 0:
    raise ValueError("""principal must be > 0"""						)
  return principal * daily_interest_rate * days_between_payments






def 			__UpperCAmelCase    (	lowercase      ,lowercase      ,lowercase      ,):







  """simple docstring"""
  if number_of_compounding_periods <= 0:
    raise ValueError("""number_of_compounding_periods must be > 0"""						)
  if nominal_annual_interest_rate_percentage < 0:
    raise ValueError("""nominal_annual_interest_rate_percentage must be >= 0"""						)
  if principal <= 0:
    raise ValueError("""principal must be > 0"""						)

  return principal * (
      (1 + nominal_annual_interest_rate_percentage) ** number_of_compounding_periods
      - 1
  )






def 			__UpperCAmelCase    (	lowercase      ,lowercase      ,lowercase      ,):







  """simple docstring"""
  if number_of_years <= 0:
    raise ValueError("""number_of_years must be > 0"""						)
  if nominal_annual_percentage_rate < 0:
    raise ValueError("""nominal_annual_percentage_rate must be >= 0"""						)
  if principal <= 0:
    raise ValueError("""principal must be > 0"""						)

  return compound_interest(
      lowercase      ,nominal_annual_percentage_rate / 3_65      ,number_of_years * 3_65						)


if __name__ == "__main__":
    import doctest

    doctest.testmod()

"""simple docstring"""


import warnings


warnings.warn(
    """memory_utils has been reorganized to utils.memory. Import `find_executable_batchsize` from the main `__init__`: """
    """`from accelerate import find_executable_batch_size` to avoid this warning.""",
    FutureWarning,
)
