






"""simple docstring"""



from __future__ import annotations



def 						lowercase    (				__snake_case				: float		,					__snake_case				: float		,					__snake_case				: float	):
		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 						lowercase    (				__snake_case				: float		,					__snake_case				: float		,					__snake_case				: float		,					):
		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 						lowercase    (				__snake_case				: float		,					__snake_case				: float		,					__snake_case				: float		,					):
		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(
		    __snake_case		,					nominal_annual_percentage_rate / 3_6_5		,					number_of_years * 3_6_5	)


if __name__ == "__main__":
						import doctest

						doctest.testmod()











"""simple docstring"""



from ...utils import is_torch_available, is_transformers_available


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



