
from ..utils import DummyObject, requires_backends





class 							UpperCAmelCase				(  metaclass=__SCREAMING_SNAKE_CASE  ):




	'''simple docstring'''





	snake_case_    =					["torch", "transformers", "onnx"]






	def __init__(	self :			Optional[int]							,*A :			Optional[int]							,**A :			int			):
					requires_backends(self							,["torch", "transformers", "onnx"]			)






	@classmethod
	def     UpperCamelCase_  (	cls :			str							,*A :			Union[str, Any]							,**A :			List[Any]			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)







	@classmethod
	def     UpperCamelCase_  (	cls :			List[str]							,*A :			Tuple							,**A :			List[Any]			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)





class 							UpperCAmelCase				(  metaclass=__SCREAMING_SNAKE_CASE  ):




	'''simple docstring'''





	snake_case_    =					["torch", "transformers", "onnx"]






	def __init__(	self :			int							,*A :			str							,**A :			int			):
					requires_backends(self							,["torch", "transformers", "onnx"]			)






	@classmethod
	def     UpperCamelCase_  (	cls :			Optional[int]							,*A :			List[Any]							,**A :			Any			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)







	@classmethod
	def     UpperCamelCase_  (	cls :			List[str]							,*A :			int							,**A :			Optional[int]			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)





class 							UpperCAmelCase				(  metaclass=__SCREAMING_SNAKE_CASE  ):




	'''simple docstring'''





	snake_case_    =					["torch", "transformers", "onnx"]






	def __init__(	self :			Any							,*A :			Any							,**A :			str			):
					requires_backends(self							,["torch", "transformers", "onnx"]			)






	@classmethod
	def     UpperCamelCase_  (	cls :			Optional[int]							,*A :			str							,**A :			Any			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)







	@classmethod
	def     UpperCamelCase_  (	cls :			Union[str, Any]							,*A :			int							,**A :			int			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)





class 							UpperCAmelCase				(  metaclass=__SCREAMING_SNAKE_CASE  ):




	'''simple docstring'''





	snake_case_    =					["torch", "transformers", "onnx"]






	def __init__(	self :			Union[str, Any]							,*A :			Tuple							,**A :			str			):
					requires_backends(self							,["torch", "transformers", "onnx"]			)






	@classmethod
	def     UpperCamelCase_  (	cls :			Dict							,*A :			Any							,**A :			Dict			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)







	@classmethod
	def     UpperCamelCase_  (	cls :			Tuple							,*A :			Any							,**A :			Any			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)





class 							UpperCAmelCase				(  metaclass=__SCREAMING_SNAKE_CASE  ):




	'''simple docstring'''





	snake_case_    =					["torch", "transformers", "onnx"]






	def __init__(	self :			Any							,*A :			int							,**A :			Any			):
					requires_backends(self							,["torch", "transformers", "onnx"]			)






	@classmethod
	def     UpperCamelCase_  (	cls :			Optional[int]							,*A :			List[Any]							,**A :			List[Any]			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)







	@classmethod
	def     UpperCamelCase_  (	cls :			Any							,*A :			List[Any]							,**A :			Optional[Any]			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)





class 							UpperCAmelCase				(  metaclass=__SCREAMING_SNAKE_CASE  ):




	'''simple docstring'''





	snake_case_    =					["torch", "transformers", "onnx"]






	def __init__(	self :			List[Any]							,*A :			Optional[int]							,**A :			int			):
					requires_backends(self							,["torch", "transformers", "onnx"]			)






	@classmethod
	def     UpperCamelCase_  (	cls :			Optional[Any]							,*A :			Tuple							,**A :			Tuple			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)







	@classmethod
	def     UpperCamelCase_  (	cls :			List[Any]							,*A :			int							,**A :			int			):
					requires_backends(cls							,["torch", "transformers", "onnx"]			)


from math import log

from scipy.constants import Boltzmann, physical_constants

SCREAMING_SNAKE_CASE							:Dict										=    300  # TEMPERATURE (unit = K)


def 						UpperCAmelCase      (     a_		,       a_		,       a_		,       )		->     float:







				"""simple docstring"""



				if donor_conc <= 0:
								raise ValueError("Donor concentration should be positive"						)
				elif acceptor_conc <= 0:
								raise ValueError("Acceptor concentration should be positive"						)
				elif intrinsic_conc <= 0:
								raise ValueError("Intrinsic concentration should be positive"						)
				elif donor_conc <= intrinsic_conc:
								raise ValueError(
								    "Donor concentration should be greater than intrinsic concentration"						)
				elif acceptor_conc <= intrinsic_conc:
								raise ValueError(
								    "Acceptor concentration should be greater than intrinsic concentration"						)
				else:
								return (
								    Boltzmann
								    * T
								    * log((donor_conc * acceptor_conc) / intrinsic_conc**2						)
								    / physical_constants["electron volt"][0]
								)


if __name__ == "__main__":
					import doctest

					doctest.testmod()
