from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


lowerCAmelCase			:							int     ={
    "configuration_m2m_100": ["M2M_100_PRETRAINED_CONFIG_ARCHIVE_MAP", "M2M100Config", "M2M100OnnxConfig"],
    "tokenization_m2m_100": ["M2M100Tokenizer"],
}


try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    lowerCAmelCase			:							Any     =[
        "M2M_100_PRETRAINED_MODEL_ARCHIVE_LIST",
        "M2M100ForConditionalGeneration",
        "M2M100Model",
        "M2M100PreTrainedModel",
    ]


if TYPE_CHECKING:
    from .configuration_mam_aaa import M2M_100_PRETRAINED_CONFIG_ARCHIVE_MAP, MaMaaaConfig, MaMaaaOnnxConfig
    from .tokenization_mam_aaa import MaMaaaTokenizer

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_mam_aaa import (
            M2M_100_PRETRAINED_MODEL_ARCHIVE_LIST,
            MaMaaaForConditionalGeneration,
            MaMaaaModel,
            MaMaaaPreTrainedModel,
        )


else:
    import sys

    lowerCAmelCase			:							List[Any]     =_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





from math import log

from scipy.constants import Boltzmann, physical_constants

lowerCAmelCase			:							List[Any]     =300  # TEMPERATURE (unit = K)







def 						A__  (					__A   , __A   , __A   , ):







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




