
"""simple docstring"""


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


_lowercase							   =				logging.get_logger(__name__)

_lowercase							   =				{
    '''google/vivit-b-16x2-kinetics400''': (
        '''https://huggingface.co/google/vivit-b-16x2-kinetics400/resolve/main/config.json'''
    ),
    # See all Vivit models at https://huggingface.co/models?filter=vivit
}







class 				lowerCAmelCase_				(      lowercase_    ):



						'''simple docstring'''


						_lowerCamelCase:    Any      =    '''vivit'''


						def __init__( self     :      Optional[Any]  ,A_     :      Union[str, Any]=224  ,A_     :      List[str]=32  ,A_     :      Dict=[2, 16, 16]  ,A_     :      List[str]=3  ,A_     :      Optional[Any]=768  ,A_     :      Dict=12  ,A_     :      Union[str, Any]=12  ,A_     :      Dict=3072  ,A_     :      Any="gelu_fast"  ,A_     :      Tuple=0.0  ,A_     :      List[Any]=0.0  ,A_     :      Optional[int]=0.02  ,A_     :      Optional[int]=1e-06  ,A_     :      str=True  ,**A_     :      Any  ,)     ->   Dict:
							A						   =   hidden_size
							A						   =   num_hidden_layers
							A						   =   num_attention_heads
							A						   =   intermediate_size
							A						   =   hidden_act
							A						   =   hidden_dropout_prob
							A						   =   attention_probs_dropout_prob
							A						   =   initializer_range
							A						   =   layer_norm_eps

							A						   =   image_size
							A						   =   num_frames
							A						   =   tubelet_size
							A						   =   num_channels
							A						   =   qkv_bias

							super().__init__(**UpperCamelCase__      )

"""simple docstring"""


from math import pi, sqrt






def       _snake_case				(		snake_case__   :     float     ):
	if num <= 0:
		raise ValueError('math domain error'     )
	if num > 171.5:
		raise OverflowError('math range error'     )
	elif num - int(snake_case__     ) not in (0, 0.5):
		raise NotImplementedError('num must be an integer or a half-integer'     )
	elif num == 0.5:
		return sqrt(snake_case__     )
	else:
		return 1.0 if num == 1 else (num - 1) * gamma(num - 1     )






def       _snake_case				(		):
	assert gamma(0.5     ) == sqrt(snake_case__     )
	assert gamma(1     ) == 1.0
	assert gamma(2     ) == 1.0


if __name__ == "__main__":
		from doctest import testmod

		testmod()
		_lowercase							   =				1.0
		while num:
				_lowercase							   =				float(input('''Gamma of: '''))
				print(F"""gamma({num}) = {gamma(num)}""")
				print('''\nEnter 0 to exit...''')