






_a        =			tuple[float, float, float]
_a        =			tuple[float, float, float]


def 				snake_case__							(							UpperCAmelCase							:  Pointad    ,			UpperCAmelCase							:  Pointad       ):
    lowerCAmelCase__   :str      							=				end_pointa[0] - end_pointa[0]
    lowerCAmelCase__   :List[Any]      							=				end_pointa[1] - end_pointa[1]
    lowerCAmelCase__   :str      							=				end_pointa[2] - end_pointa[2]
    return (x, y, z)


def 				snake_case__							(							UpperCAmelCase							:  Vectorad    ,			UpperCAmelCase							:  Vectorad       ):
    lowerCAmelCase__   :int      							=				ab[1] * ac[2] - ab[2] * ac[1]  # *i
    lowerCAmelCase__   :Optional[Any]      							=				(ab[0] * ac[2] - ab[2] * ac[0]) * -1  # *j
    lowerCAmelCase__   :Any      							=				ab[0] * ac[1] - ab[1] * ac[0]  # *k
    return (x, y, z)


def 				snake_case__							(							UpperCAmelCase							:  Vectorad    ,			UpperCAmelCase							:  int       ):
    return tuple(round(UpperCAmelCase    ,			UpperCAmelCase       ) for x in vector       ) == (0, 0, 0)


def 				snake_case__							(							UpperCAmelCase							:  Pointad    ,			UpperCAmelCase							:  Pointad    ,			UpperCAmelCase							:  Pointad    ,			UpperCAmelCase							:  int = 1_0       ):
    lowerCAmelCase__   :List[Any]      							=				create_vector(UpperCAmelCase    ,			UpperCAmelCase       )
    lowerCAmelCase__   :Union[str, Any]      							=				create_vector(UpperCAmelCase    ,			UpperCAmelCase       )
    return is_zero_vector(get_ad_vectors_cross(UpperCAmelCase    ,			UpperCAmelCase       )    ,			UpperCAmelCase       )











from ...configuration_utils import PretrainedConfig
from ...utils import logging


_a    :   Dict        =			logging.get_logger(__name__)

_a    :   Optional[Any]        =			{
    """caidas/swin2sr-classicalsr-x2-64""": (
        """https://huggingface.co/caidas/swin2sr-classicalsr-x2-64/resolve/main/config.json"""
    ),
}







class 	_UpperCAmelCase  (  _A		):




      """simple docstring"""



      A          =    '''swin2sr'''

      A          =    {
          '''hidden_size''': '''embed_dim''',
          '''num_attention_heads''': '''num_heads''',
          '''num_hidden_layers''': '''num_layers''',
      }
      def __init__(   self    ,	_lowerCAmelCase=64    ,	_lowerCAmelCase=1    ,	_lowerCAmelCase=3    ,	_lowerCAmelCase=180    ,	_lowerCAmelCase=[6, 6, 6, 6, 6, 6]    ,	_lowerCAmelCase=[6, 6, 6, 6, 6, 6]    ,	_lowerCAmelCase=8    ,	_lowerCAmelCase=2.0    ,	_lowerCAmelCase=True    ,	_lowerCAmelCase=0.0    ,	_lowerCAmelCase=0.0    ,	_lowerCAmelCase=0.1    ,	_lowerCAmelCase="gelu"    ,	_lowerCAmelCase=False    ,	_lowerCAmelCase=0.02    ,	_lowerCAmelCase=1e-5    ,	_lowerCAmelCase=2    ,	_lowerCAmelCase=1.0    ,	_lowerCAmelCase="1conv"    ,	_lowerCAmelCase="pixelshuffle"    ,	**_lowerCAmelCase    ,	):



          '''simple docstring'''
          super().__init__(**_lowerCAmelCase		)

          lowerCAmelCase__   :Union[str, Any]      							=				image_size
          lowerCAmelCase__   :List[Any]      							=				patch_size
          lowerCAmelCase__   :Any      							=				num_channels
          lowerCAmelCase__   :Union[str, Any]      							=				embed_dim
          lowerCAmelCase__   :Optional[int]      							=				depths
          lowerCAmelCase__   :int      							=				len(_lowerCAmelCase		)
          lowerCAmelCase__   :List[str]      							=				num_heads
          lowerCAmelCase__   :str      							=				window_size
          lowerCAmelCase__   :List[str]      							=				mlp_ratio
          lowerCAmelCase__   :List[Any]      							=				qkv_bias
          lowerCAmelCase__   :Union[str, Any]      							=				hidden_dropout_prob
          lowerCAmelCase__   :Optional[int]      							=				attention_probs_dropout_prob
          lowerCAmelCase__   :Dict      							=				drop_path_rate
          lowerCAmelCase__   :Tuple      							=				hidden_act
          lowerCAmelCase__   :Dict      							=				use_absolute_embeddings
          lowerCAmelCase__   :Tuple      							=				layer_norm_eps
          lowerCAmelCase__   :Dict      							=				initializer_range
          lowerCAmelCase__   :Optional[int]      							=				upscale
          lowerCAmelCase__   :Optional[Any]      							=				img_range
          lowerCAmelCase__   :List[str]      							=				resi_connection
          lowerCAmelCase__   :Union[str, Any]      							=				upsampler



