
'''simple docstring'''





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


SCREAMING_SNAKE_CASE     :   Optional[Any]    =					{"""configuration_nat""": ["""NAT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """NatConfig"""]}


try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      SCREAMING_SNAKE_CASE     :   Optional[int]    =					[
          """NAT_PRETRAINED_MODEL_ARCHIVE_LIST""",
          """NatForImageClassification""",
          """NatModel""",
          """NatPreTrainedModel""",
          """NatBackbone""",
      ]

if TYPE_CHECKING:
      from .configuration_nat import NAT_PRETRAINED_CONFIG_ARCHIVE_MAP, NatConfig

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_nat import (
                NAT_PRETRAINED_MODEL_ARCHIVE_LIST,
                NatBackbone,
                NatForImageClassification,
                NatModel,
                NatPreTrainedModel,
            )

else:
      import sys

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





'''simple docstring'''





from math import cos, sin







def snake_case_    (				lowercase__		):
  UpperCAmelCase__			:				List[Any]												=       float(lowercase__		)
  return [[scaling_factor * int(x == y		) for x in range(2		)] for y in range(2		)]







def snake_case_    (				lowercase__		):
  UpperCAmelCase__					, UpperCAmelCase__			:				List[Any]												=       cos(lowercase__		), sin(lowercase__		)
  return [[c, -s], [s, c]]







def snake_case_    (				lowercase__		):
  UpperCAmelCase__					, UpperCAmelCase__			:				Dict												=       cos(lowercase__		), sin(lowercase__		)
  UpperCAmelCase__			:				Tuple												=       c * s
  return [[c * c, cs], [cs, s * s]]







def snake_case_    (				lowercase__		):
  UpperCAmelCase__					, UpperCAmelCase__			:				Dict												=       cos(lowercase__		), sin(lowercase__		)
  UpperCAmelCase__			:				Any												=       c * s
  return [[2 * c - 1, 2 * cs], [2 * cs, 2 * s - 1]]


print(F'    {scaling(5) = }')
print(F'  {rotation(4_5) = }')
print(F'{projection(4_5) = }')






print(F'{reflection(4_5) = }')



