



'''simple docstring'''



from __future__ import annotations

# Define the Gravitational Constant G and the function
_lowercase       :						List[str]						=6.6743E-11  # unit of G : m^3 * kg^-1 * s^-2


def 							__UpperCAmelCase				(				UpperCamelCase__				:float   ,				UpperCamelCase__				:float   ,				UpperCamelCase__				:float   ,				UpperCamelCase__				:float			)		->						dict[str, float]:
				snake_case__      :   str      =    mass_a * mass_a

				if (force, mass_a, mass_a, distance).count(0			) != 1:
								raise ValueError('''One and only one argument must be 0'''			)
				if force < 0:
								raise ValueError('''Gravitational force can not be negative'''			)
				if distance < 0:
								raise ValueError('''Distance can not be negative'''			)
				if mass_a < 0 or mass_a < 0:
								raise ValueError('''Mass can not be negative'''			)
				if force == 0:
								snake_case__      :   Dict      =    GRAVITATIONAL_CONSTANT * product_of_mass / (distance**2)
								return {"force": force}
				elif mass_a == 0:
								snake_case__      :   List[str]      =    (force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
								return {"mass_1": mass_a}
				elif mass_a == 0:
								snake_case__      :   List[Any]      =    (force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
								return {"mass_2": mass_a}
				elif distance == 0:
								snake_case__      :   str      =    (GRAVITATIONAL_CONSTANT * product_of_mass / (force)) ** 0.5
								return {"distance": distance}
				raise ValueError('''One and only one argument must be 0'''			)


# Run doctest
if __name__ == "__main__":
				import doctest

				doctest.testmod()






'''simple docstring'''







from typing import TYPE_CHECKING

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


__SCREAMING_SNAKE_CASE		:  Tuple        =      {
    'configuration_segformer': ['SEGFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP', 'SegformerConfig', 'SegformerOnnxConfig']
}

try:
					if not is_vision_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__SCREAMING_SNAKE_CASE		:  Dict        =      ['SegformerFeatureExtractor']
					__SCREAMING_SNAKE_CASE		:  str        =      ['SegformerImageProcessor']

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__SCREAMING_SNAKE_CASE		:  List[str]        =      [
					    'SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
					    'SegformerDecodeHead',
					    'SegformerForImageClassification',
					    'SegformerForSemanticSegmentation',
					    'SegformerLayer',
					    'SegformerModel',
					    'SegformerPreTrainedModel',
					]

try:
					if not is_tf_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					__SCREAMING_SNAKE_CASE		:  List[str]        =      [
					    'TF_SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
					    'TFSegformerDecodeHead',
					    'TFSegformerForImageClassification',
					    'TFSegformerForSemanticSegmentation',
					    'TFSegformerModel',
					    'TFSegformerPreTrainedModel',
					]


if TYPE_CHECKING:
					from .configuration_segformer import SEGFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, SegformerConfig, SegformerOnnxConfig

					try:
										if not is_vision_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .feature_extraction_segformer import SegformerFeatureExtractor
										from .image_processing_segformer import SegformerImageProcessor

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_segformer import (
										    SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
										    SegformerDecodeHead,
										    SegformerForImageClassification,
										    SegformerForSemanticSegmentation,
										    SegformerLayer,
										    SegformerModel,
										    SegformerPreTrainedModel,
										)
					try:
										if not is_tf_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_tf_segformer import (
										    TF_SEGFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
										    TFSegformerDecodeHead,
										    TFSegformerForImageClassification,
										    TFSegformerForSemanticSegmentation,
										    TFSegformerModel,
										    TFSegformerPreTrainedModel,
										)

else:
					import sys

					__SCREAMING_SNAKE_CASE		:  Optional[Any]        =      _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)