





from __future__ import annotations






def       _A  (      lowerCamelCase							, lowerCamelCase							, lowerCamelCase							, ):
   if (electron_conc, hole_conc, intrinsic_conc).count(0   ) != 1:
      raise ValueError("You cannot supply more or less than 2 values"   )
   elif electron_conc < 0:
      raise ValueError("Electron concentration cannot be negative in a semiconductor"   )
   elif hole_conc < 0:
      raise ValueError("Hole concentration cannot be negative in a semiconductor"   )
   elif intrinsic_conc < 0:
      raise ValueError(
          "Intrinsic concentration cannot be negative in a semiconductor"   )
   elif electron_conc == 0:
      return (
          "electron_conc",
          intrinsic_conc**2 / hole_conc,
      )
   elif hole_conc == 0:
      return (
          "hole_conc",
          intrinsic_conc**2 / electron_conc,
      )
   elif intrinsic_conc == 0:
      return (
          "intrinsic_conc",
          (electron_conc * hole_conc) ** 0.5,
      )
   else:
      return (-1, -1)


if __name__ == "__main__":
  import doctest

  doctest.testmod()








from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


SCREAMING_SNAKE_CASE__       :			Any			      =						{"""configuration_sew""": ["""SEW_PRETRAINED_CONFIG_ARCHIVE_MAP""", """SEWConfig"""]}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE__       :			Union[str, Any]			      =						[
      """SEW_PRETRAINED_MODEL_ARCHIVE_LIST""",
      """SEWForCTC""",
      """SEWForSequenceClassification""",
      """SEWModel""",
      """SEWPreTrainedModel""",
  ]

if TYPE_CHECKING:
  from .configuration_sew import SEW_PRETRAINED_CONFIG_ARCHIVE_MAP, SEWConfig

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_sew import (
        SEW_PRETRAINED_MODEL_ARCHIVE_LIST,
        SEWForCTC,
        SEWForSequenceClassification,
        SEWModel,
        SEWPreTrainedModel,
    )


else:
  import sys

  SCREAMING_SNAKE_CASE__       :			Optional[int]			      =						_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)

