'''simple docstring'''

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_torch_available,
    is_vision_available,
)


_A			:      Optional[int]					      =				{'''configuration_deit''': ['''DEIT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''DeiTConfig''', '''DeiTOnnxConfig''']}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      List[str]					      =				['''DeiTFeatureExtractor''']
 _A			:      Optional[Any]					      =				['''DeiTImageProcessor''']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      List[Any]					      =				[
     '''DEIT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''DeiTForImageClassification''',
     '''DeiTForImageClassificationWithTeacher''',
     '''DeiTForMaskedImageModeling''',
     '''DeiTModel''',
     '''DeiTPreTrainedModel''',
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _A			:      Any					      =				[
     '''TF_DEIT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''TFDeiTForImageClassification''',
     '''TFDeiTForImageClassificationWithTeacher''',
     '''TFDeiTForMaskedImageModeling''',
     '''TFDeiTModel''',
     '''TFDeiTPreTrainedModel''',
 ]


if TYPE_CHECKING:
 from .configuration_deit import DEIT_PRETRAINED_CONFIG_ARCHIVE_MAP, DeiTConfig, DeiTOnnxConfig

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .feature_extraction_deit import DeiTFeatureExtractor
  from .image_processing_deit import DeiTImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_deit import (
      DEIT_PRETRAINED_MODEL_ARCHIVE_LIST,
      DeiTForImageClassification,
      DeiTForImageClassificationWithTeacher,
      DeiTForMaskedImageModeling,
      DeiTModel,
      DeiTPreTrainedModel,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_deit import (
      TF_DEIT_PRETRAINED_MODEL_ARCHIVE_LIST,
      TFDeiTForImageClassification,
      TFDeiTForImageClassificationWithTeacher,
      TFDeiTForMaskedImageModeling,
      TFDeiTModel,
      TFDeiTPreTrainedModel,
  )


else:
 import sys

 _A			:      str					      =				_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







'''simple docstring'''

def      UpperCamelCase_						(					snake_case_       :       list[int]						,		snake_case_       :       list[int]      )					->     tuple[float, float]:






 '''simple docstring'''

 if not len(snake_case_      ) == len(snake_case_      ) == 3:
  raise ValueError("""Please enter a valid equation."""      )
 if equationa[0] == equationa[1] == equationa[0] == equationa[1] == 0:
  raise ValueError("""Both a & b of two equations can't be zero."""      )

 # Extract the coefficients
 __lowerCAmelCase							,       __lowerCAmelCase							,       __lowerCAmelCase											=						equationa
 __lowerCAmelCase							,       __lowerCAmelCase							,       __lowerCAmelCase											=						equationa

 # Calculate the determinants of the matrices
 __lowerCAmelCase											=						aa * ba - aa * ba
 __lowerCAmelCase											=						ca * ba - ca * ba
 __lowerCAmelCase											=						aa * ca - aa * ca

 # Check if the system of linear equations has a solution (using Cramer's rule)
 if determinant == 0:
  if determinant_x == determinant_y == 0:
   raise ValueError("""Infinite solutions. (Consistent system)"""      )
  else:
   raise ValueError("""No solution. (Inconsistent system)"""      )
 else:
  if determinant_x == determinant_y == 0:
   # Trivial solution (Inconsistent system)
   return (0.0, 0.0)
  else:
   __lowerCAmelCase											=						determinant_x / determinant
   __lowerCAmelCase											=						determinant_y / determinant
   # Non-Trivial Solution (Consistent system)
   return (x, y)






