


from typing import TYPE_CHECKING

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


_snake_case  :	Optional[Any]			      =       {'configuration_mmbt': ['MMBTConfig']}

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			_snake_case  :	Dict			      =       ['MMBTForClassification', 'MMBTModel', 'ModalEmbeddings']


if TYPE_CHECKING:
			from .configuration_mmbt import MMBTConfig

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_mmbt import MMBTForClassification, MMBTModel, ModalEmbeddings

else:
			import sys

			_snake_case  :	str			      =       _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





import math







def        lowerCAmelCase_  (      __lowerCamelCase							,			__lowerCamelCase			):

							if initial_intensity < 0:
														raise ValueError("The value of intensity cannot be negative"			)
														# handling of negative values of initial intensity
							if angle < 0 or angle > 3_6_0:
														raise ValueError("In Malus Law, the angle is in the range 0-360 degrees"			)
														# handling of values out of allowed range
							return initial_intensity * (math.cos(math.radians(__lowerCamelCase			)			) ** 2)


if __name__ == "__main__":
			import doctest

			doctest.testmod(name="malus_law")

