






'''simple docstring'''







from typing import TYPE_CHECKING

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


UpperCamelCase_					=				{
    "configuration_dpr": ["DPR_PRETRAINED_CONFIG_ARCHIVE_MAP", "DPRConfig"],
    "tokenization_dpr": [
        "DPRContextEncoderTokenizer",
        "DPRQuestionEncoderTokenizer",
        "DPRReaderOutput",
        "DPRReaderTokenizer",
    ],
}


try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCamelCase_					=				[
      "DPRContextEncoderTokenizerFast",
      "DPRQuestionEncoderTokenizerFast",
      "DPRReaderTokenizerFast",
  ]

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCamelCase_					=				[
      "DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "DPRContextEncoder",
      "DPRPretrainedContextEncoder",
      "DPRPreTrainedModel",
      "DPRPretrainedQuestionEncoder",
      "DPRPretrainedReader",
      "DPRQuestionEncoder",
      "DPRReader",
  ]

try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCamelCase_					=				[
      "TF_DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "TF_DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "TF_DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "TFDPRContextEncoder",
      "TFDPRPretrainedContextEncoder",
      "TFDPRPretrainedQuestionEncoder",
      "TFDPRPretrainedReader",
      "TFDPRQuestionEncoder",
      "TFDPRReader",
  ]


if TYPE_CHECKING:
  from .configuration_dpr import DPR_PRETRAINED_CONFIG_ARCHIVE_MAP, DPRConfig
  from .tokenization_dpr import (
      DPRContextEncoderTokenizer,
      DPRQuestionEncoderTokenizer,
      DPRReaderOutput,
      DPRReaderTokenizer,
  )

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_dpr_fast import (
        DPRContextEncoderTokenizerFast,
        DPRQuestionEncoderTokenizerFast,
        DPRReaderTokenizerFast,
    )

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_dpr import (
        DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
        DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
        DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST,
        DPRContextEncoder,
        DPRPretrainedContextEncoder,
        DPRPreTrainedModel,
        DPRPretrainedQuestionEncoder,
        DPRPretrainedReader,
        DPRQuestionEncoder,
        DPRReader,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_dpr import (
        TF_DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
        TF_DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
        TF_DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFDPRContextEncoder,
        TFDPRPretrainedContextEncoder,
        TFDPRPretrainedQuestionEncoder,
        TFDPRPretrainedReader,
        TFDPRQuestionEncoder,
        TFDPRReader,
    )

else:
  import sys

  UpperCamelCase_					=				_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)




from math import cos, sin







def       lowerCamelCase_  (    _a       :						float    ):



    '''simple docstring'''




    UpperCAmelCase_     :       str  		=					float(_a    )
    return [[scaling_factor * int(x == y    ) for x in range(2    )] for y in range(2    )]







def       lowerCamelCase_  (    _a       :						float    ):



    '''simple docstring'''




    UpperCAmelCase_		, UpperCAmelCase_     :       List[str]  		=					cos(_a    ), sin(_a    )
    return [[c, -s], [s, c]]







def       lowerCamelCase_  (    _a       :						float    ):



    '''simple docstring'''




    UpperCAmelCase_		, UpperCAmelCase_     :       Optional[Any]  		=					cos(_a    ), sin(_a    )
    UpperCAmelCase_     :       Dict  		=					c * s
    return [[c * c, cs], [cs, s * s]]







def       lowerCamelCase_  (    _a       :						float    ):



    '''simple docstring'''




    UpperCAmelCase_		, UpperCAmelCase_     :       List[Any]  		=					cos(_a    ), sin(_a    )
    UpperCAmelCase_     :       Optional[Any]  		=					c * s
    return [[2 * c - 1, 2 * cs], [2 * cs, 2 * s - 1]]


print(F"    {scaling(5) = }")
print(F"  {rotation(45) = }")
print(F"{projection(45) = }")






print(F"{reflection(45) = }")
