






from math import log

from scipy.constants import Boltzmann, physical_constants

__a      :       int				  =   300  # TEMPERATURE (unit = K)



def 			_SCREAMING_SNAKE_CASE						( __lowercase   :			Dict			,				__lowercase   :			Optional[Any]			,				__lowercase   :			Dict			,				)						->      Tuple:





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












from ...utils import (
    OptionalDependencyNotAvailable,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)


try:
  if not (is_transformers_available() and is_torch_available()):
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  from ...utils.dummy_torch_and_transformers_objects import (
      ImageTextPipelineOutput,
      UniDiffuserPipeline,
  )
else:
  from .modeling_text_decoder import UniDiffuserTextDecoder
  from .modeling_uvit import UniDiffuserModel, UTransformeraDModel
  from .pipeline_unidiffuser import ImageTextPipelineOutput, UniDiffuserPipeline




